{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 57,
   "id": "initial_id",
   "metadata": {
    "collapsed": true,
    "ExecuteTime": {
     "end_time": "2024-01-04T06:11:35.347421100Z",
     "start_time": "2024-01-04T06:11:35.326408100Z"
    }
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "outputs": [],
   "source": [
    "data = pd.read_csv(\"d://data//otto//train.csv\")"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2024-01-04T06:11:36.509746600Z",
     "start_time": "2024-01-04T06:11:36.148898Z"
    }
   },
   "id": "db890369b70e3f76"
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "outputs": [],
   "source": [
    "x = data.drop([\"id\", \"target\"], axis=1)  #id没用的，target用来作为y值\n",
    "y = data[\"target\"]"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2024-01-04T06:11:37.539308300Z",
     "start_time": "2024-01-04T06:11:37.483187Z"
    }
   },
   "id": "b36c1bc07d61416c"
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "outputs": [],
   "source": [
    "### 方法2.增加欠采样样本数\n",
    "# from imblearn.over_sampling import SMOTE\n",
    "# \n",
    "# x_resampled, y_resampled = SMOTE().fit_resample(x, y)\n",
    "\n",
    "from imblearn.under_sampling import RandomUnderSampler\n",
    "\n",
    "rus = RandomUnderSampler(random_state=0)\n",
    "x_resampled, y_resampled = rus.fit_resample(x, y)\n"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2024-01-04T06:11:39.310577700Z",
     "start_time": "2024-01-04T06:11:39.069162900Z"
    }
   },
   "id": "6df95be97343ddea"
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "outputs": [],
   "source": [
    "x_resampled"
   ],
   "metadata": {
    "collapsed": false
   },
   "id": "e2b8a3ff4b7c4753"
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "outputs": [],
   "source": [
    "y_resampled"
   ],
   "metadata": {
    "collapsed": false
   },
   "id": "f49857d057bc6cbe"
  },
  {
   "cell_type": "markdown",
   "source": [
    "## 2.2.把标签值转换为数字"
   ],
   "metadata": {
    "collapsed": false
   },
   "id": "ffd5aa478f4e595c"
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "outputs": [
    {
     "data": {
      "text/plain": "array([0, 0, 0, ..., 8, 8, 8])"
     },
     "execution_count": 61,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.preprocessing import LabelEncoder\n",
    "\n",
    "encoder = LabelEncoder()\n",
    "y_resampled = encoder.fit_transform(y_resampled)\n",
    "y_resampled"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2024-01-04T06:11:41.535897300Z",
     "start_time": "2024-01-04T06:11:41.512728300Z"
    }
   },
   "id": "1d08b98b8464f40f"
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "outputs": [],
   "source": [
    "# 以前用train_test_split，现在改用StratifiedShuffleSplit\n",
    "# from sklearn.model_selection import train_test_split\n",
    "# \n",
    "# trainX, testX, trainY, testY = train_test_split(x_resampled, y_resampled, test_size=0.2)"
   ],
   "metadata": {
    "collapsed": false
   },
   "id": "f231bc2c0ea6c22a"
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "outputs": [],
   "source": [
    "# import seaborn as sns\n",
    "# \n",
    "# sns.countplot(testY)\n",
    "# plt.show()\n"
   ],
   "metadata": {
    "collapsed": false
   },
   "id": "724d791624ffe925"
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "outputs": [],
   "source": [
    " # 使用StratifiedShuffleSplit分割数据\n",
    "\n",
    "from sklearn.model_selection import StratifiedShuffleSplit\n",
    "\n",
    "sss = StratifiedShuffleSplit(n_splits=1, test_size=0.2, random_state=0)\n",
    "for train_index, test_index in sss.split(x_resampled, y_resampled):\n",
    "    # print(len(train_index))\n",
    "    # print(len(test_index))\n",
    "    trainX = x_resampled.values[train_index]\n",
    "    x_val = x_resampled.values[test_index]\n",
    "\n",
    "    trainY = y_resampled[train_index]\n",
    "    y_val = y_resampled[test_index]\n"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2024-01-04T06:11:45.375664100Z",
     "start_time": "2024-01-04T06:11:45.320111500Z"
    }
   },
   "id": "b9707d008b028049"
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "outputs": [],
   "source": [
    "trainX"
   ],
   "metadata": {
    "collapsed": false
   },
   "id": "2affb66167189ea9"
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "outputs": [],
   "source": [
    "x_val"
   ],
   "metadata": {
    "collapsed": false
   },
   "id": "29e37f8a52013d60"
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "outputs": [],
   "source": [
    "trainY"
   ],
   "metadata": {
    "collapsed": false
   },
   "id": "d05fd46f1dea6c97"
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "outputs": [],
   "source": [
    "y_val"
   ],
   "metadata": {
    "collapsed": false
   },
   "id": "7bfb3c72c53e7828"
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "outputs": [],
   "source": [
    "import seaborn as sns\n",
    "\n",
    "sns.countplot(data=y_val)\n",
    "plt.show()"
   ],
   "metadata": {
    "collapsed": false
   },
   "id": "b3d609d7df791825"
  },
  {
   "cell_type": "markdown",
   "source": [
    "## 数据标准化"
   ],
   "metadata": {
    "collapsed": false
   },
   "id": "111099f54b6a3dab"
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "outputs": [],
   "source": [
    "from sklearn.preprocessing import StandardScaler\n",
    "\n",
    "scaler = StandardScaler()\n",
    "scaler.fit(trainX)\n",
    "\n",
    "x_train_scaled = scaler.transform(trainX)\n",
    "x_val_scaled = scaler.transform(x_val)\n"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2024-01-04T06:11:51.843206900Z",
     "start_time": "2024-01-04T06:11:51.772220100Z"
    }
   },
   "id": "5165b6793d696dc2"
  },
  {
   "cell_type": "markdown",
   "source": [
    "## 2.5数据PCA降维"
   ],
   "metadata": {
    "collapsed": false
   },
   "id": "25fd87b388e44eca"
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "outputs": [],
   "source": [
    "from sklearn.decomposition import PCA\n",
    "\n",
    "pca = PCA(n_components=0.9)  # 保留90%\n",
    "\n",
    "x_train_pca = pca.fit_transform(x_train_scaled)\n",
    "x_val_pca = pca.transform(x_val_scaled)\n",
    "\n",
    "print(x_train_pca.shape, x_val_pca.shape)"
   ],
   "metadata": {
    "collapsed": false
   },
   "id": "a6d2c534aa4dac79"
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\IPython\\core\\pylabtools.py:152: UserWarning: Glyph 20803 (\\N{CJK UNIFIED IDEOGRAPH-5143}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\IPython\\core\\pylabtools.py:152: UserWarning: Glyph 32032 (\\N{CJK UNIFIED IDEOGRAPH-7D20}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\IPython\\core\\pylabtools.py:152: UserWarning: Glyph 25968 (\\N{CJK UNIFIED IDEOGRAPH-6570}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\IPython\\core\\pylabtools.py:152: UserWarning: Glyph 37327 (\\N{CJK UNIFIED IDEOGRAPH-91CF}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\IPython\\core\\pylabtools.py:152: UserWarning: Glyph 34920 (\\N{CJK UNIFIED IDEOGRAPH-8868}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\IPython\\core\\pylabtools.py:152: UserWarning: Glyph 36798 (\\N{CJK UNIFIED IDEOGRAPH-8FBE}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\IPython\\core\\pylabtools.py:152: UserWarning: Glyph 20449 (\\N{CJK UNIFIED IDEOGRAPH-4FE1}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\IPython\\core\\pylabtools.py:152: UserWarning: Glyph 24687 (\\N{CJK UNIFIED IDEOGRAPH-606F}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\IPython\\core\\pylabtools.py:152: UserWarning: Glyph 30334 (\\N{CJK UNIFIED IDEOGRAPH-767E}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\IPython\\core\\pylabtools.py:152: UserWarning: Glyph 20998 (\\N{CJK UNIFIED IDEOGRAPH-5206}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n"
     ]
    },
    {
     "data": {
      "text/plain": "<Figure size 640x480 with 1 Axes>",
      "image/png": "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EREREbenQCMiIiJuT4FGRERE3J4CjYiIiLg9H7MLaG4Wi9kViIiIyKk61d/bFsMwjKYtRURERKRp6ZaTiIiIuD0FGhEREXF7CjQiIiLi9hRoRERExO0p0IiIiIjbU6ARERERt6dAIyIiIm5PgUZERETcngKNiIiIuD0Fmj/Abrcze/ZsEhMTSUpKIiUlxeySTFVVVcWFF17Ipk2bXG25ublMmzaNIUOGMGHCBL766isTK2x+hYWF3HXXXQwbNoyzzjqLefPmYbfbAc++Nnv27GH69OnEx8dzzjnn8Morr7ge8+Tr8ms333wz9913n+t4+/btXHbZZQwePJhLLrmEjIwME6trfqtWrSI6OrrOn7vuugvQtamqquKBBx7gtNNO44wzzuDJJ5/k2CYAnnRtFGj+gPnz55ORkcHixYuZO3cuCxcuZMWKFWaXZQq73c4999xDVlaWq80wDG6//XbCwsJ47733mDRpEnfccQf5+fkmVtp8DMPgrrvuoqKigiVLlvDUU0+xZs0ann76aY++Nk6nk5tvvpng4GA++OADHnjgAV544QWWL1/u0dfl1z7++GPWrVvnOi4vL+fmm28mMTGR999/n/j4eG655RbKy8tNrLJ5ZWdnc+655/LVV1+5/jz00EO6NsBDDz3EN998w7/+9S+eeOIJ3nnnHd5++23PuzaGNMjRo0eNuLg4Y+PGja625557zrj22mtNrMocWVlZxkUXXWRMnDjR6Nevn+uafPPNN8aQIUOMo0ePus6dOnWq8cwzz5hVarPKzs42+vXrZ9hsNlfb8uXLjaSkJI++NoWFhcbdd99tlJWVudpuv/12Y+7cuR59XY4pKSkxRo4caVxyySXGzJkzDcMwjKVLlxqjRo0ynE6nYRiG4XQ6jTFjxhjvvfeemaU2qz//+c/GE088Ua/d069NSUmJMWDAAGPTpk2uthdffNG47777PO7aqIemgTIzM3E4HMTHx7vaEhISSEtLw+l0mlhZ8/v22285/fTTefvtt+u0p6WlMWDAANq2betqS0hIYMuWLc1coTnCw8N55ZVXCAsLq9N+5MgRj742HTt25OmnnyYgIADDMEhNTeW7775j2LBhHn1djnnssceYNGkSffr0cbWlpaWRkJCA5edthy0WC0OHDvWo67Jz50569OhRr93Tr01qaioBAQEMGzbM1XbzzTczb948j7s2CjQNZLPZCA4OxtfX19UWFhaG3W6ntLTUvMJMcPXVVzN79mz8/f3rtNtsNjp27FinLTQ0lIKCguYszzRBQUGcddZZrmOn08kbb7zB8OHDPf7aHDNq1Ciuvvpq4uPjGTdunMdflw0bNvD9999z22231Wn39OtiGAa7du3iq6++Yty4cZx33nk8/vjjVFVVefy1yc3NJTIykmXLljF+/HhGjx7Nc889h9Pp9Lhr42N2Ae6qoqKiTpgBXMdVVVVmlNTinOgaeer1WbBgAdu3b+fdd9/l1Vdf1bUBnnnmGYqKikhOTmbevHke/TNjt9uZO3cu999/P1artc5jnnxdAPLz813X4OmnnyYvL4+HHnqIyspKj7825eXl7Nmzh7feeot58+Zhs9m4//778ff397hro0DTQH5+fvV+KI4d/++Hkafy8/Or11tVVVXlkddnwYIFLF68mKeeeop+/frp2vwsLi4OqP1l/pe//IVLLrmEioqKOud4ynVZuHAhAwcOrNOrd8yJPm884boAREZGsmnTJtq3b4/FYiEmJgan08lf//pXhg0b5tHXxsfHhyNHjvDEE08QGRkJ1AbAN998k6ioKI+6Ngo0DRQREUFJSQkOhwMfn9rLaLPZsFqtBAUFmVxdyxAREUF2dnadtqKionpdoK3dgw8+yJtvvsmCBQsYN24c4NnXpqioiC1btnDeeee52vr06UN1dTXh4eHk5OTUO98TrsvHH39MUVGRa1zesV9En332GRdeeCFFRUV1zveU63JMhw4d6hz37t0bu91OeHi4R1+b8PBw/Pz8XGEGoGfPnuzfv59hw4Z51LXRGJoGiomJwcfHp87gqtTUVOLi4vDy0mUFGDx4MNu2baOystLVlpqayuDBg02sqnktXLiQt956iyeffJILLrjA1e7J1yYvL4877riDwsJCV1tGRgYhISEkJCR47HV5/fXXWb58OcuWLWPZsmWMGjWKUaNGsWzZMgYPHswPP/zgWlvEMAw2b97sEdcFYP369Zx++ul1eu9+/PFHOnToQEJCgkdfm8GDB2O329m1a5erLScnh8jISI/7udFv3gby9/dn8uTJJCcnk56ezurVq0lJSeH66683u7QWY9iwYXTu3JlZs2aRlZXFSy+9RHp6OpdeeqnZpTWLnTt38vzzz3PTTTeRkJCAzWZz/fHkaxMXF0dsbCyzZ88mOzubdevWsWDBAm699VaPvi6RkZFERUW5/rRr14527doRFRXF+PHjOXz4MA8//DDZ2dk8/PDDVFRUcP7555tddrOIj4/Hz8+Pv/3tb+Tk5LBu3Trmz5/PjTfe6PHXplevXpxzzjnMmjWLzMxM1q9fz0svvcRVV13ledfGvBnj7q+8vNy49957jSFDhhhJSUnGv//9b7NLMt2v16ExDMPYvXu3cc011xgDBw40LrjgAuPrr782sbrm9eKLLxr9+vU77h/D8OxrU1BQYNx+++3G0KFDjTPPPNN44YUXXGtlePJ1+bWZM2e61qExDMNIS0szJk+ebMTFxRmXXnqpsW3bNhOra34//fSTMW3aNGPIkCHGmWeeaTz77LOunxlPvzaHDx82/vrXvxpDhgwxRowY4bHXxmIYP/dFiYiIiLgp3XISERERt6dAIyIiIm5PgUZERETcngKNiIiIuD0FGhEREXF7CjQiIiLi9hRoRERExO0p0IiIiIjbU6AREWkCxcXFfPrpp2aXIeIxFGhERJrA448/zrp168wuQ8Rj+JhdgIi4jy1btrB69erjPhYQEMCtt94KwKOPPoqPT/2Pl/Lycm699VY6duwIwPLly9mxY8dxXy8mJsa1Q/n+/fv517/+hdVqrXdeTU0NM2fObND7aUraVUakeSnQiMgpczgc/OUvfznuY99//73r6/POO4/ExMR65+Tl5eF0Ol3HnTt3ZuLEiSd9vZqaGm688UY6der0m+cdT3FxMQ8++CBffvkl/v7+XHLJJfzpT3/CYrFQUFDAvHnz2LBhAxaLhYkTJ3Lvvffi6+vL+++/z8KFC/niiy9cr3XdddcxbNgw7rzzTu677z7at29PYWEha9asoUOHDvzpT39i8uTJPPvss3zwwQcAfPvtt3VeQ0Sahm45iUirdvvtt2Oz2XjjjTd4+umnef/991myZAlVVVVMnTqViooKXn/9dZ5++mnWrl3L/PnzT/m1lyxZQmxsLB999BFjx45l7ty5lJWVccMNN3D++edz/vnn8+677zbhuxORY9RDIyKtVmZmJj/88AOrV6+mW7duACQnJ1NeXs769espLCzknXfeoX379gDcf//9zJgxgz/96U+n9PrR0dHcdNNNANx999289tprZGVlMXToUNftsZCQkCZ4ZyLyvxRoRKTViI+Pd32dkJDAJZdcQocOHVxhBmpvhwG89NJL9OjRwxVmAIYOHYrD4WDv3r2n9P169Ojh+jogIACovS0nIs1PgUZEWo1ly5a5vrZarWzduvWE5/r5+dVrq6mpcf3XYrHUe/x/w0qbNm3qnaPBwCLmUKARkVYjKiqqzvHhw4cpLS1l//79dO7cGYDXXnuNjRs3cuWVV7J7925KS0vp0KEDUDuLy8fHh+7du7N7926OHj3qei3DMMjLyzvlWiwWi8KNSDPSoGARabX69u3L8OHDmTNnDjt27GDTpk289NJLnHnmmZx55pl069aNe++9lx07drBx40YefPBBLrzwQoKCghg4cCClpaW8/vrr5ObmMm/ePA4dOnTK39vf3599+/ZRWFjYhO9QRI5RD42InDLDMHj88ceP+5ifn59rqvann37K2rVr651TVlbGjBkzXMd79+497nkAffr0qTP1+8UXX6Rdu3b1zqusrDzuFPFjFixYwAMPPMAVV1xBQEAAV1xxBVdffTUWi4Xnn3+eBx98kMsvv5x27doxceJE7rnnHqB2fMzMmTN54YUXePrpp5kyZQrjxo074ff5X5MmTeL222/noosuYuPGjce9hSUijcdiqE9URERE3JxuOYmIiIjbU6ARERERt6dAIyIiIm5PgUZERETcngKNiIiIuD0FGhEREXF7CjQiIiLi9hRoRERExO0p0IiIiIjbU6ARERERt6dAIyIiIm7v/wPwp4dSX87D5QAAAABJRU5ErkJggg=="
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 数据可视化\n",
    "\n",
    "plt.plot(np.cumsum(pca.explained_variance_ratio_))\n",
    "\n",
    "plt.xlabel(\"元素数量-count\")\n",
    "plt.ylabel(\"表达信息百分百-%\")\n",
    "plt.grid()\n",
    "plt.show()\n"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2024-01-04T06:11:59.324640500Z",
     "start_time": "2024-01-04T06:11:59.111668400Z"
    }
   },
   "id": "f55d76bd04894f9d"
  },
  {
   "cell_type": "markdown",
   "source": [
    "# 3.模型训练"
   ],
   "metadata": {
    "collapsed": false
   },
   "id": "1f7a2cbaebfcef84"
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "outputs": [],
   "source": [
    "from xgboost import XGBClassifier\n",
    "\n",
    "xgb = XGBClassifier()\n",
    "xgb.fit(x_train_pca, trainY)\n",
    "\n",
    "# 改变预测值输出模式，让输出结果为百分占比，降低logloss值\n",
    "y_pre_proba = xgb.predict_proba(x_val_pca)\n"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2024-01-04T06:12:46.449069900Z",
     "start_time": "2024-01-04T06:12:42.321320300Z"
    }
   },
   "id": "8890d71684f3e360"
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "outputs": [],
   "source": [
    "y_pre_proba"
   ],
   "metadata": {
    "collapsed": false
   },
   "id": "666b0a51e2525437"
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "data": {
      "text/plain": "0.7354819117610188"
     },
     "execution_count": 66,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# logloss模型评估\n",
    "from sklearn.metrics import log_loss\n",
    "\n",
    "log_loss(y_val, y_pre_proba, eps=1e-15, normalize=True)\n"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2024-01-04T06:12:48.574352Z",
     "start_time": "2024-01-04T06:12:48.539389900Z"
    }
   },
   "id": "f04a5dbeba765f0"
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "outputs": [],
   "source": [
    "xgb.get_params"
   ],
   "metadata": {
    "collapsed": false
   },
   "id": "f5314efba713083c"
  },
  {
   "cell_type": "markdown",
   "source": [
    "# 优化模型\n",
    "## 优化参数：n_estimator max_dept min_child_weights subsamples consample_bytrees etas "
   ],
   "metadata": {
    "collapsed": false
   },
   "id": "adea90772b7601bc"
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "outputs": [],
   "source": [
    "def tuning():\n",
    "    # n_estimator\n",
    "    scores = []\n",
    "    n_estimators = range(100, 1000, 50)\n",
    "\n",
    "    for i in n_estimators:\n",
    "        xgb = XGBClassifier(\n",
    "            n_estimators=i,\n",
    "            objective=\"multi:softprob\",\n",
    "            n_jobs=-1\n",
    "        )\n",
    "        xgb.fit(x_train_pca, trainY)\n",
    "        y_pre = xgb.predict_proba(x_val_pca)\n",
    "        s = log_loss(y_val, y_pre, eps=1e-15, normalize=True)\n",
    "        scores.append(s)\n",
    "        # print(\"当前n_estimators={}，得分={}\".format(i, s))\n",
    "    #画图\n",
    "    plt.plot(n_estimators, scores, \"o-\")\n",
    "    plt.xlabel(\"n_estimators\")\n",
    "    plt.ylabel(\"scores(log_loss)\")\n",
    "    plt.grid()\n",
    "    # 最小损失值即为最优\n",
    "    ns = n_estimators[np.argmin(scores)]\n",
    "    print(\"n_estimator最优值={}\".format(ns))\n",
    "\n",
    "    # max_dept\n",
    "    scores = []\n",
    "    max_dept_arr = range(0, 10)\n",
    "    for i in max_dept_arr:\n",
    "        xgb = XGBClassifier(\n",
    "            n_estimators=ns,\n",
    "            objective=\"multi:softprob\",\n",
    "            n_jobs=-1,\n",
    "            max_depth=i\n",
    "        )  # 其他参数默认\n",
    "        xgb.fit(x_train_pca, trainY)\n",
    "        y_pre = xgb.predict_proba(x_val_pca)\n",
    "        s = log_loss(y_val, y_pre, eps=1e-15, normalize=True)\n",
    "        scores.append(s)\n",
    "        # print(\"当前max_dept={}，得分={}\".format(i, s))\n",
    "    #画图\n",
    "    plt.plot(max_dept_arr, scores, \"o-\")\n",
    "    plt.xlabel(\"max_dept\")\n",
    "    plt.ylabel(\"scores(log_loss)\")\n",
    "    plt.grid()\n",
    "    # 最小损失值即为最优\n",
    "    md = max_dept_arr[np.argmin(scores)]\n",
    "    print(\"max_dept最优值={}\".format(md))\n",
    "\n",
    "    # min_child_weights\n",
    "    scores = []\n",
    "    min_child_weights_arr = range(0, 10)\n",
    "    for i in min_child_weights_arr:\n",
    "        xgb = XGBClassifier(\n",
    "            n_estimators=ns,\n",
    "            objective=\"multi:softprob\",\n",
    "            n_jobs=-1,\n",
    "            max_depth=md,\n",
    "            min_child_weight=i\n",
    "        )  # 其他参数默认\n",
    "        xgb.fit(x_train_pca, trainY)\n",
    "        y_pre = xgb.predict_proba(x_val_pca)\n",
    "        s = log_loss(y_val, y_pre, eps=1e-15, normalize=True)\n",
    "        scores.append(s)\n",
    "    #画图\n",
    "    plt.plot(min_child_weights_arr, scores, \"o-\")\n",
    "    plt.xlabel(\"min_child_weights\")\n",
    "    plt.ylabel(\"scores(log_loss)\")\n",
    "    plt.grid()\n",
    "    # 最小损失值即为最优\n",
    "    mcw = min_child_weights_arr[np.argmin(scores)]\n",
    "    print(\"min_child_weight最优值={}\".format(mcw))\n",
    "\n",
    "    # subsamples\n",
    "    scores = []\n",
    "    subsamples_arr = range(0.1, 1, 0.1)\n",
    "    for i in subsamples_arr:\n",
    "        xgb = XGBClassifier(\n",
    "            n_estimators=ns,\n",
    "            objective=\"multi:softprob\",\n",
    "            n_jobs=-1,\n",
    "            max_depth=md,\n",
    "            min_child_weight=mcw,\n",
    "            subsample=i\n",
    "        )  # 其他参数默认\n",
    "        xgb.fit(x_train_pca, trainY)\n",
    "        y_pre = xgb.predict_proba(x_val_pca)\n",
    "        s = log_loss(y_val, y_pre, eps=1e-15, normalize=True)\n",
    "        scores.append(s)\n",
    "    #画图\n",
    "    plt.plot(subsamples_arr, scores, \"o-\")\n",
    "    plt.xlabel(\"subsamples_arr\")\n",
    "    plt.ylabel(\"scores(log_loss)\")\n",
    "    plt.grid()\n",
    "    # 最小损失值即为最优\n",
    "    ss = subsamples_arr[np.argmin(scores)]\n",
    "    print(\"subsamples最优值={}\".format(ss))\n",
    "\n",
    "    # consample_bytrees\n",
    "    scores = []\n",
    "    colsample_bytrees_arr = range(0.1, 1.1, 0.1)\n",
    "    for i in colsample_bytrees_arr:\n",
    "        xgb = XGBClassifier(\n",
    "            n_estimators=ns,\n",
    "            objective=\"multi:softprob\",\n",
    "            n_jobs=-1,\n",
    "            max_depth=md,\n",
    "            min_child_weight=mcw,\n",
    "            subsample=ss,\n",
    "            consample_bytree=i\n",
    "        )  # 其他参数默认\n",
    "        xgb.fit(x_train_pca, trainY)\n",
    "        y_pre = xgb.predict_proba(x_val_pca)\n",
    "        s = log_loss(y_val, y_pre, eps=1e-15, normalize=True)\n",
    "        scores.append(s)\n",
    "    #画图\n",
    "    plt.plot(colsample_bytrees_arr, scores, \"o-\")\n",
    "    plt.xlabel(\"consample_bytrees_arr\")\n",
    "    plt.ylabel(\"scores(log_loss)\")\n",
    "    plt.grid()\n",
    "    # 最小损失值即为最优\n",
    "    csb = colsample_bytrees_arr[np.argmin(scores)]\n",
    "    print(\"consample_bytree最优值={}\".format(csb))\n",
    "\n",
    "    # etas\n",
    "    scores = []\n",
    "    etas_arr = range(0, 1, 0.1)\n",
    "    for i in etas_arr:\n",
    "        xgb = XGBClassifier(\n",
    "            n_estimators=ns,\n",
    "            objective=\"multi:softprob\",\n",
    "            n_jobs=-1,\n",
    "            max_depth=md,\n",
    "            min_child_weight=mcw,\n",
    "            subsample=ss,\n",
    "            colsample_bytree=csb,\n",
    "            eta=i\n",
    "        )  # 其他参数默认\n",
    "        xgb.fit(x_train_pca, trainY)\n",
    "        y_pre = xgb.predict_proba(x_val_pca)\n",
    "        s = log_loss(y_val, y_pre, eps=1e-15, normalize=True)\n",
    "        scores.append(s)\n",
    "    #画图\n",
    "    plt.plot(etas_arr, scores, \"o-\")\n",
    "    plt.xlabel(\"etas_arr\")\n",
    "    plt.ylabel(\"scores(log_loss)\")\n",
    "    plt.grid()\n",
    "    # 最小损失值即为最优\n",
    "    value = etas_arr[np.argmin(scores)]\n",
    "    print(\"eta最优值={}\".format(value))\n",
    "\n",
    "    print(\n",
    "        \"n_estimator={}\\t max_depth={}\\t min_child_weights={}\\t subsamples={}\\t consample_bytrees={}\\t etas={}\\t\".format(\n",
    "            ns, md, mcw, ss, csb, value))\n"
   ],
   "metadata": {
    "collapsed": false
   },
   "id": "3b64e8fa0e9c2f36"
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "outputs": [],
   "source": [
    "tuning()"
   ],
   "metadata": {
    "collapsed": false
   },
   "id": "1f398949b61921a2"
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "n_estimator最优值=100\n"
     ]
    },
    {
     "data": {
      "text/plain": "<Figure size 640x480 with 1 Axes>",
      "image/png": "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67as/GK+SchkQHtfO1YmIiJS/+iVmR1si89gyicHbMIQQG5hCVM+OWDtXC0iIiLVQ4GompVYDBZsS7hkm9e/TqTEYlRTRSIiIqJAVM1ijueUejL0v9LOFBJzPKeaKhIREREFomqWcZkwVN52IiIicuUUiKqZr0fZZqAuazsRERG5cgpE1axLoCf+lwk7AY1MdAn0rKaKRERERIGomjk5OvDUgHaXbPNk/7Y4OTpUU0UiIiKiQGQHA9r7Mmd4p1JPigIamZgzvJPmIRIREalmDoZhaHx3GWVknKEy/7TOz1SdkVuEr4crXQI99WRIRESkkjg4gK9vozK11UzVduTk6EBkcy97lyEiIlLv6ZWZiIiI1HsKRCIiIlLvKRCJiIhIvadAJCIiIvWeApGIiIjUewpEIiIiUu8pEImIiEi9p0AkIiIi9Z4CkYiIiNR7mqm6HBy0qoaIiEitUZ7f21rLTEREROo9vTITERGRek+BSEREROo9BSIRERGp9xSIREREpN5TIBIREZF6T4FIRERE6j0FIhEREan3FIhERESk3lMgEhERkXpPgUjKJS0tjUcffZQePXrQp08fZs+eTWFhIQDJyclMmDCBLl26MHToUHbs2GFz7A8//MCwYcMIDw9n3LhxJCcn2+MW6p3777+f5557zvr5wIED3H777YSHh3Prrbeyb98+m/YbN25k4MCBhIeHM3nyZE6dOlXdJdcbRUVFzJw5k+7du3PNNdfw+uuvc37xAH1PNceJEyeYNGkSXbt2ZcCAASxdutS6T99T3aFAJGVmGAaPPvoo+fn5LF++nDfeeIOvv/6av/3tbxiGweTJk/H19WXNmjWMGDGChx9+mJSUFABSUlKYPHkyo0aN4uOPP6ZJkyY89NBDaOWYqrVp0ya2b99u/ZyXl8f9999Pt27dWLt2LREREUyaNIm8vDwA9uzZw/PPP8/DDz/MRx99xOnTp5k6daq9yq/zXn75ZX744Qf+9a9/sWDBAlatWsVHH32k76mGefzxx2nQoAFr165l2rRp/O1vf+PLL7/U91TXGCJllJCQYHTo0MFIT0+3bvv000+NqKgo44cffjC6dOlinD171rpv/PjxxptvvmkYhmH87W9/M/7yl79Y9+Xl5RkRERHGjz/+WH03UM9kZWUZffv2NW699VZjypQphmEYxurVq40BAwYYFovFMAzDsFgsxqBBg4w1a9YYhmEYzzzzjLWtYRhGSkqKERwcbBw9erT6b6COy8rKMjp16mTs2rXLuu2dd94xnnvuOX1PNUh2drbRoUMH49dff7Vue/jhh42ZM2fqe6pj9IRIyszPz4/33nsPX19fm+25ubnExsbSqVMnGjRoYN0eGRlJTEwMALGxsXTr1s26z93dndDQUOt+qXxz5sxhxIgRtGvXzrotNjaWyMhIHH5fAtrBwYGuXbte9Htq2rQpzZo1IzY2tlprrw+io6Px8PCgR48e1m33338/s2fP1vdUg7i5ueHu7s7atWspLi4mKSmJ3bt3ExISou+pjlEgkjJr3Lgxffr0sX62WCx8+OGH9OrVi/T0dPz9/W3a+/j4kJqaCnDZ/VK5du7cyc8//8xDDz1ks/1y38PJkyf1PVWT5ORkAgMDWb9+PYMHD+b666/nrbfewmKx6HuqQUwmEy+++CIfffQR4eHhDBkyhL59+3L77bfre6pjnO1dgNRe8+bN48CBA3z88ccsXboUV1dXm/2urq4UFRUBkJ+ff8n9UnkKCwuZPn06L774Im5ubjb7Lvc9FBQU6HuqJnl5eRw5coSVK1cye/Zs0tPTefHFF3F3d9f3VMMkJibSv39//u///o/4+HhmzZpF79699T3VMQpEUiHz5s1j2bJlvPHGG3To0AGTyUR2drZNm6KiIusvZJPJVOovgaKiIho3blxdJdcbCxcu5Oqrr7Z5mnfexb6Hy31P7u7uVVdwPeXs7Exubi4LFiwgMDAQODf4YMWKFbRs2VLfUw2xc+dOPv74Y7Zv346bmxthYWGkpaXxz3/+k+bNm+t7qkMUiKTcZs2axYoVK5g3bx433ngjAAEBASQkJNi0y8jIsD4uDggIICMjo9T+kJCQ6im6Htm0aRMZGRlEREQAWP9C3rx5M8OGDbvg93C578nPz68aKq9f/Pz8MJlM1jAE0Lp1a06cOEGPHj30PdUQ+/bto2XLljZPWzt16sSiRYvo1q2bvqc6RH2IpFwWLlzIypUref3117npppus28PDw9m/fz8FBQXWbdHR0YSHh1v3R0dHW/fl5+dz4MAB636pPP/+97/59NNPWb9+PevXr2fAgAEMGDCA9evXEx4ezi+//GKd7sAwDHbv3n3R7+nEiROcOHFC31MVCA8Pp7CwkEOHDlm3JSUlERgYqO+pBvH39+fIkSM2T3qSkpIICgrS91THKBBJmSUmJvL2229z3333ERkZSXp6uvWnR48eNG3alKlTpxIfH8+7777Lnj17uO222wC49dZb2b17N++++y7x8fFMnTqVoKAgevbsaee7qnsCAwNp2bKl9adhw4Y0bNiQli1bMnjwYE6fPs0rr7xCQkICr7zyCvn5+QwZMgSAMWPGsGHDBlavXk1cXBzPPvss1113Hc2bN7fzXdU9bdq04brrrmPq1KnExcXx3Xff8e677zJmzBh9TzXIgAEDcHFx4YUXXuDQoUNs27aNRYsWcffdd+t7qmvsOeZfapd33nnH6NChwwV/DMMwDh8+bNx1113G1Vdfbdx0003G999/b3P8N998Y9xwww1G586djfHjx2sujmoyZcoUm7lQYmNjjZEjRxphYWHGbbfdZuzfv9+m/Zo1a4x+/foZXbp0MSZPnmycOnWqukuuN06fPm0888wzRpcuXYzevXsb//jHP6xz2uh7qjni4+ONCRMmGF27djUGDhxovP/++/qe6iAHw9BUwSIiIlK/6ZWZiIiI1HsKRCIiIlLvKRCJiIhIvadAJCIiIvWeApGIiIjUewpEIiIiUu8pEImIiEi9p0AkInVacnIy27dvB+DYsWMEBwdz7NixSr9Obm4u69evr/Tzikj1UCASkTpt2rRp7NmzB4CmTZuyY8cOmjZtWunXWbp0KWvWrKn084pI9dBq9yJSbzg5OVXZSuOa9F+kdtMTIhGpFudfV23ZsoWBAwcSFhbGpEmTyM7OLtPxK1euZMCAAURERHD33Xfz66+/Wvft3LmTESNGEBYWxvXXX8/KlSsBeO655/jpp59YuHAhd999d6lXZsHBwXz++ecMGTKE8PBwnnzySZKTkxk3bhzh4eGMHTuWtLQ04FzgWbRoEQMGDODqq68mKiqKhQsXArB27VoWLlzITz/9RHBwMACFhYXMmzePfv360aVLFx544AFOnDhh82fx1ltv0b17d1566SVOnz7NI488Qrdu3ejevTtPP/00ubm5lfJnLyJlYN+l1ESkvkhOTjY6dOhg3HLLLUZsbKwRExNj9O7d23j99dcve+xXX31lXHvttca2bduMQ4cOGW+88YbRo0cPIzs72zCbzUaPHj2Mt99+20hOTjY2bNhgdOzY0YiPjzdOnz5t3HHHHcZrr71mZGVlWWtITk42DMMwOnToYAwePNiIiYkxdu7caYSGhhrXXnut8dlnnxkHDhwwBg4caMyaNcswDMNYu3at0atXL+OHH34wkpOTjf/85z9Ghw4djH379hn5+fnGa6+9Ztxxxx3GyZMnDcM4t6juoEGDjJ07dxoHDx40Jk6caIwcOdIoKSmx1nHPPfcYR44cMQ4dOmTMmjXLuOOOO4zffvvNOHDggHHTTTcZc+bMqbovRERs6JWZiFSrRx99lM6dOwNw8803s3fv3sse89577zFp0iT69+8PwOOPP863337LJ598ws0330x2dja+vr4EBQURFBSEv78/fn5+NGrUCBcXFxo0aICXl9cFn7hMmDCB8PBwAEJCQmjdujVDhgwB4IYbbiAuLg441/9o9uzZ9O7dG4AxY8bw1ltvER8fT2hoKA0aNMDFxQU/Pz9ycnLYsGEDixcvplevXgDMnz+f6667ju+//57WrVsDMH78eFq0aAHA8ePHadiwIUFBQbi7u/P3v/+9wn/GIlJ+emUmItWqZcuW1v/t4eFBcXHxZY9JTExk3rx5REREWH/i4uI4fPgwXl5ejBkzhhdeeIH+/fvz0ksv0ahRIzw9PctUT/Pmza3/283NjcDAQJvPRUVFAPTq1Qtvb28WLFjAQw89RP/+/UlPT8disZQ65+HDh7FYLNagBeDl5UXr1q1JTEy0bvvztcaNG8fu3bvp3bs3Dz74IHv37qVVq1ZlugcRuXIKRCJSrVxcXMp9TElJCdOmTWP9+vXWn88//5yHHnoIgBkzZrBx40ZGjx5NbGwso0ePtg61vxwnJyebz46OF/5rcfXq1UyYMIHCwkJuuOEGli5dylVXXXXBtiaT6aL38ecA9ed2vXv3Zvv27UyfPh1XV1defPFFpkyZUqZ7EJErp0AkIjVe69atSU1NpWXLltafRYsWERMTQ3p6OjNnzqRly5Y8+OCDrFmzhl69erFt27ZKrWHFihVMnjyZadOmMXLkSLy9vcnMzLSOLnNwcLC2bd68Oc7OzsTExFi3ZWVlceTIEevrsv+1dOlS9u/fzy233MLf//53Zs+ezZYtWyr1HkTk4hSIRKTG+7//+z+WLVvG+vXrOXr0KPPmzePzzz+nbdu2eHp68uWXX/Lqq69y9OhR/vvf/xIXF0enTp0AaNCgAYcPHyYzM/OKavD29mbnzp0cOnSIffv28cQTT1BcXGx9pebu7s7Jkyc5duwYDRs25Pbbb2fWrFns2rWLuLg4nnnmGa666iquvfbaC54/NTWVl156iZiYGA4fPszmzZut9yAiVU+BSERqvKFDh/LEE0/w5ptvMmzYMHbu3Mk///lPWrVqhaurK2+//TZxcXEMHz6cxx9/nNtuu43bb78dgNtvv53vvvuOe++994pqmDZtGrm5uYwYMYJHHnmE4OBgBg0axMGDBwEYNGgQFouFm266iczMTKZMmcI111zDo48+ypgxYzCZTCxduhRXV9cLnv+xxx6ja9euPPjgg4wYMYK8vDzmzZt3RTWLSNk5GIZmExMREZH6TU+IREREpN7TPEQiYlfvv/8+b7755kX333zzzbz00kvVWJGI1Ed6ZSYidnX69GmysrIuut/DwwMfH59qrEhE6iMFIhEREan31IdIRERE6j0FIhEREan3FIhERESk3lMgEhERkXpPgUhERETqPQUiERERqfcUiERERKTeUyASERGReu//AZi8ZkIyo2QoAAAAAElFTkSuQmCC"
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# n_estimator\n",
    "scores = []\n",
    "n_estimators = range(100, 1000, 50)\n",
    "\n",
    "for i in n_estimators:\n",
    "    xgb = XGBClassifier(\n",
    "        n_estimators=i,\n",
    "        objective=\"multi:softprob\",\n",
    "        n_jobs=-1\n",
    "    )\n",
    "    xgb.fit(x_train_pca, trainY)\n",
    "    y_pre = xgb.predict_proba(x_val_pca)\n",
    "    s = log_loss(y_val, y_pre, eps=1e-15, normalize=True)\n",
    "    scores.append(s)\n",
    "    # print(\"当前n_estimators={}，得分={}\".format(i, s))\n",
    "#画图\n",
    "plt.plot(n_estimators, scores, \"o-\")\n",
    "plt.xlabel(\"n_estimators\")\n",
    "plt.ylabel(\"scores(log_loss)\")\n",
    "plt.grid()\n",
    "# 最小损失值即为最优\n",
    "ns = n_estimators[np.argmin(scores)]\n",
    "print(\"n_estimator最优值={}\".format(ns))"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2024-01-04T06:18:21.872159300Z",
     "start_time": "2024-01-04T06:13:34.382419900Z"
    }
   },
   "id": "8cb768434ecec0af"
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "max_dept最优值=4\n"
     ]
    },
    {
     "data": {
      "text/plain": "<Figure size 640x480 with 1 Axes>",
      "image/png": "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RERERBaPCRERERFZPCZEREREZPGYEBEREZHFY0JERNQM69ata7WjEXJzc3HgwIFWeS8iah1MiIiI2tnChQtx6tQpocMgopswISIiIiKLx4SIiEzKlStXEBQUhN9++w3R0dGIiIjA22+/jfPnz2PSpEkIDw/HnDlzUFlZCZVKhbi4OAwbNgyhoaGIjo7G119/DQDIzs5Gnz598N133wEAVCoV7rvvPrz77rvNiiMrKwtTp05Fv379MGPGDJSUlBg8f/z4cUyaNAl9+/bFgw8+iL179+qfe/311/H222/j2WefRd++fRETE4MTJ07on/vjjz/w4Ycf8nRyIhPChIiITNLGjRvx8ccfY9myZfjiiy/wwgsvYP78+fj000+RkpKCb775Bhs3bsRvv/2GdevW4eeff0ZMTAyWLVsGhUKBwMBAzJ49G6tXr0ZlZSU++ugjaLVavPLKK3e8t0qlwuzZs9GlSxfs2LED9913nz7RAgC5XI45c+Zg0qRJ+OGHHzBr1iy8/vrrOH78uH7MV199hR49emDnzp0YMGAAZs+ejWvXrmHRokWIiIjAzJkzsW7dujb53hFRyzEhIiKT9NxzzyE4OBgPPPAA3NzccP/992Po0KGIjIzE3XffjZycHAQHB+Odd95BeHg4unTpgmeffRZ1dXW4ePEiAODZZ5+Fg4MDFi1ahE8//RTvvPMObG1t73jv33//HaWlpViyZAkCAwMxffp0jBo1Sv/81q1bMWTIEDz++OPo1q0bJk6ciEcffRRbtmzRj+nRowdeffVVBAYGIjY2Fk5OTtizZw8cHBxgZWWFTp06wdnZubW/bURkJKnQARARNaVLly76P9vY2MDX19fgsUqlwqhRo3D48GEsX74cOTk5SE9PBwBoNBoAgLW1NZYuXYonnngCDz/8MAYOHNise2dlZcHf3x+dOnXSXwsLC9PvDMvJycH+/fsRERGhf76urg4BAQH6x3fddZf+z2KxGL1790Z2dnZLvgVE1I6YEBGRSZJIJAaPxeLGE9pr165FQkICJk2ahJiYGLz11luIjo42GJORkQGJRIKTJ09CpVLB2tq6WffX6XQGj62srPR/VqvVePDBB/Hss88ajJFKpU3+GahP0pr6DERkGvh/JxGZra+++gpvvvkmXn31VYwfPx41NTUAbiQzhYWFeP/997F8+XLU1dVh/fr1zXrfnj174uLFi6ioqNBfO3v2rP7PAQEBuHTpErp166b/2rdvH3744Ycmx2s0GmRkZCAoKOhvfV4iajtMiIjIbDk7O2P//v3Izc3F8ePH8c9//hNAfVE0ACxduhQRERGYMGECFi5ciI0bNyIrK+uO7ztkyBB4e3tj0aJFyM7Oxo4dO7Bnzx7989OmTUNaWhrWrl2Lixcv4ocffsB7770HHx8f/Zg//vgD8fHxyMnJwTvvvIOamhqMHTsWANCpUydcvHgRxcXFrfntIKK/gQkREZmtd999F2fPnsX999+P2NhYjB07Fn379sXZs2exd+9eHDx4EG+88QYAIDo6GkOHDsWbb77ZaDnsr6ysrLBhwwaUlZXhoYcewrZt2zB9+nT9876+vli/fj0OHjyIBx54AO+//z5ef/11TJgwQT8mOjoaR48eRUxMDNLT0/Gf//wHjo6OAIDJkyfj4MGDmDVrVht8V4jIGCLdnf5lICKiFnn99dcBAMuXLxc4EiJqLs4QERERkcXjLjMisjiDBg3S1xk1Zffu3Qb1QETU8XHJjIgsTm5uLrRa7S2f9/X1bbRtnog6NiZEREREZPFYQ0REREQWjwkRERERWTwmRERERGTxmBARERGRxWNCRERERBaPCRERERFZPCZEREREZPGYEBEREZHF+3/eM7/ofZF0vQAAAABJRU5ErkJggg=="
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "scores = []\n",
    "max_dept_arr = range(0, 10)\n",
    "for i in max_dept_arr:\n",
    "    xgb = XGBClassifier(\n",
    "        n_estimators=100,\n",
    "        objective=\"multi:softprob\",\n",
    "        n_jobs=-1,\n",
    "        max_depth=i\n",
    "    )  # 其他参数默认\n",
    "    xgb.fit(x_train_pca, trainY)\n",
    "    y_pre = xgb.predict_proba(x_val_pca)\n",
    "    s = log_loss(y_val, y_pre, eps=1e-15, normalize=True)\n",
    "    scores.append(s)\n",
    "    # print(\"当前max_dept={}，得分={}\".format(i, s))\n",
    "#画图\n",
    "plt.plot(max_dept_arr, scores, \"o-\")\n",
    "plt.xlabel(\"max_dept\")\n",
    "plt.ylabel(\"scores(log_loss)\")\n",
    "plt.grid()\n",
    "# 最小损失值即为最优\n",
    "md = max_dept_arr[np.argmin(scores)]\n",
    "print(\"max_dept最优值={}\".format(md))"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2024-01-04T06:27:05.686399800Z",
     "start_time": "2024-01-04T06:26:22.386907400Z"
    }
   },
   "id": "6326506047a71e07"
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "min_child_weight最优值=6\n"
     ]
    },
    {
     "data": {
      "text/plain": "<Figure size 640x480 with 1 Axes>",
      "image/png": "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dAi4u7vj7u6udBiXFRgYqHQIQogmZMtMCHFV5i2qb775huHDh9OvXz9eeeUVjhw5wvjx4+nbty+PP/44lZWVVltmK1as4Nlnn2Xu3LnccMMNDB48mNWrVzf7dYuLi3n66ae54YYbGDJkCMuWLePC8Yvbtm1j5MiR9OnThyeeeILy8nLAesusqezsbCZNmkSfPn2YPHkypaWlzYrl//7v/xg8eLDl9VNTU+nVqxe7d++23DN06FB+/PFHAD788EPL1+qRRx6xGhR84ZaZ0WjkjTfeYNCgQQwaNIh//vOfjBo1ymqbbO/evYwZM4aEhAQefvhhTp8+bXkegMmTJ7NixQrq6up46aWXGDRoEP369eOJJ54gPz+/We9PCGcnCZEQotmSk5P55z//yYIFC3jvvfd48sknefbZZ3nnnXdIS0vjk08+uegxW7Zswc3NjY0bNzJ16lTeeOMNjh071qzX+/Of/0xhYSHvv/8+/+///T82bNjA2rVrLZ/fuHEjy5Yt49133+XgwYNXTbZqa2uZNm0anTt3ZsOGDdxxxx189NFHzYpl8ODBnDt3jqysLAB+/vlnVCoV+/btAyArK4vKykoGDBjA9u3bWblyJbNnz2bjxo3079+fyZMnWxK2C7311lt8+umnLF26lH//+99888035ObmWt2zbt06XnrpJT755BPKy8t54403ACxf7xUrVjBlyhTWrl3Lzz//TEpKCp988glVVVUsXLiwWe9PCGcnW2ZCiGb705/+RO/evenduzcLFy7k7rvvZsiQIUBDwpCTk3PRY/z9/ZkxYwYajYbHHnuM1atXk56eTteuXa/4WhkZGfzyyy9s27aNzp07AzBv3jx0Op3lnueee47ExEQA7rzzTjIyMq74nD/++CNlZWXMmzcPT09Punfvzp49eygpKbnqe/f29iYxMZE9e/bQs2dPfv75Z2655RZLQvTjjz9y44034urqyttvv83jjz/ObbfdBsDTTz/Nt99+y2effXZRAfd///tfnn76aZKSkgBYtGgRd955p9U9f/zjHxk0aBAADzzwAB9++CFwfuvNz88PLy8vTp06hZubG5GRkfj7+7No0SLKysqu+t6EELJCJIRoAXNiAg11OpGRkVYf19bWXvSYqKgoNBqN5WMvLy8MBsNVX+vYsWP4+/tbvebIkSO59957LR9fd911lv/28fFBr9df8Tmzs7OJjo62KmhOSEi4aixmSUlJ7Nmzh/r6etLS0vj9739PWloaRqORXbt2MXToUACOHj3KkiVL6Nevn+VXRkYGx48ft3q+kpISCgoKrGLo1q0bfn5+Vvc1930++OCDFBYWkpSUxJQpU9i5c6cUWwvRTLJCJIRotgsTGwC1+uo/U7m4uFx07cI6oJY8rqnmvP7VXrs5r2OWlJTEe++9x8GDBwkNDWXQoEGoVCoOHTrEnj17ePHFFwGor69n5syZDB482Orx3t7eVh9rtdpLxtT04+a+z5iYGLZv384333zDN998w7Jly/jiiy9Yu3YtKpWq2e9TCGckK0RCCJvUpUsXysrKyMvLs1x79913+dOf/tTq54yJieH48eNUVFRYrh0+fLjZj09ISMBkMrFu3ToGDBiAWq3mhhtuICUlhaCgILp06QJA165dOXv2LF26dLH8WrVqFWlpaVbP5+vrS2hoKAcPHrRcy83N5dy5c616f59++ik7duzgzjvv5PXXX+ftt98mNTWV4uLiVj2fEM5EEiIhhE2KiYnhpptuYtasWWRmZvLTTz+RnJxsqVlqjZtvvpmIiAhmzZrF0aNH2bBhA1999VWzH69Wq7npppsshdIA/fv356uvvrJslwH8/ve/Z82aNXz66aecPHmSJUuW8L///e+S21ePPPIIb775Jrt27SIjI8OyytTcFR1PT0+ysrKoqKigoqKCV199lV27dpGbm8vnn39OeHg4AQEBzX6PQjgr2TITQtisJUuWMH/+fB588EG8vb158MEH+e1vf2s5dt5SLi4uvPXWW7z00kvcd9999OrVi4ceeoj09PRmP0dSUhKbN2+2JEQDBgzAZDJZJUR33XUXRUVFvPnmmxQVFdGjRw/+9a9/ER0dfdHzTZkyhYKCAp566ik0Gg3Tpk1j7969zd7Ke+SRR1i8eDEnT57khRde4OzZszz33HOUl5dz/fXX869//euirU4hxMVUpuZs5gshhGgX3377Lddff73lxFhJSQmDBw/m66+/JioqSuHohHAekhAJIYSC/vznP1NfX8/f/vY3VCoVy5cv58yZM5fs6SSEaD+SEAkhFDF+/PgrNmhcvXo1AwYM6LB4/v3vf/Pmm29e9vNjxozh5ZdfbvPXzc/PZ/78+ezZsweTycTgwYOZPXs2YWFhbf5aQojLk4RICKGIM2fOUFdXd9nPh4WFdeg8snPnzl1xjIe3tzdBQUEdFo8QomNJQiSEEEIIpyfH7oUQQgjh9CQhEkIIIYTTk4RICCGEEE5PEiIhhBBCOD1JiIQQQgjh9CQhEkIIIYTTk4RICCGEEE7v/wMbXaVoG5bXYQAAAABJRU5ErkJggg=="
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# min_child_weights\n",
    "scores = []\n",
    "min_child_weights_arr = range(0, 10)\n",
    "for i in min_child_weights_arr:\n",
    "    xgb = XGBClassifier(\n",
    "        n_estimators=100,\n",
    "        objective=\"multi:softprob\",\n",
    "        n_jobs=-1,\n",
    "        max_depth=4,\n",
    "        min_child_weight=i\n",
    "    )  # 其他参数默认\n",
    "    xgb.fit(x_train_pca, trainY)\n",
    "    y_pre = xgb.predict_proba(x_val_pca)\n",
    "    s = log_loss(y_val, y_pre, eps=1e-15, normalize=True)\n",
    "    scores.append(s)\n",
    "#画图\n",
    "plt.plot(min_child_weights_arr, scores, \"o-\")\n",
    "plt.xlabel(\"min_child_weights\")\n",
    "plt.ylabel(\"scores(log_loss)\")\n",
    "plt.grid()\n",
    "# 最小损失值即为最优\n",
    "mcw = min_child_weights_arr[np.argmin(scores)]\n",
    "print(\"min_child_weight最优值={}\".format(mcw))"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2024-01-04T06:43:59.221725Z",
     "start_time": "2024-01-04T06:43:33.460935200Z"
    }
   },
   "id": "44dad7d277d4938e"
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "subsamples最优值=1.0\n"
     ]
    },
    {
     "data": {
      "text/plain": "<Figure size 640x480 with 1 Axes>",
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkQAAAGxCAYAAACDV6ltAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAABjaklEQVR4nO3deVxVdf7H8ddlR5BFEFTcUREVFXErsSa31Cm3ylLLHLVsWp2yHM0pHU1LrX7TMpUWactUOlk26eSS1ai5FAbmgrGYogiyK7Je7v39ody6gQoEXOC+n48Hj0f33O8553O4CW++5/v9HoPZbDYjIiIiYsccbF2AiIiIiK0pEImIiIjdUyASERERu6dAJCIiInZPgUhERETsngKRiIiI2D0FIhEREbF7CkQiIiJi9xSIRERExO4pEImIiIjdc7J1AQ1JZuZ59KATERGRhsFgAD+/ppVqa/NAVFRUxKJFi9i6dStubm5Mnz6d6dOnV9h227ZtvPDCC6SmptK1a1cWLFhA9+7dOXXqFEOHDq1wn/fee49+/fqxZs0ali1bZvXe9OnTmTt3bqVrNZtRIBIREWmEbB6Ili9fzqFDh1i7di0pKSnMnTuXVq1aMXLkSKt28fHxPPbYY/z973+nT58+rFmzhlmzZrFt2zZatmzJrl27rNo/++yznDhxgt69ewOQkJDA5MmTuf/++y1t3N3da/36REREpP6zaSDKz89n/fr1rF69mu7du9O9e3fi4+N5//33ywWi3bt306lTJ8aNGwfAo48+yvvvv09CQgJhYWE0b97c0vbAgQNs2bKFjRs34uzsDEBiYiLjxo2zaiciIiICNh5UHRcXh9FoJDw83LItIiKC2NhYTCaTVVsfHx8SEhKIjo7GZDKxYcMGPD09adu2bbnjPv/880ycOJHg4GDLtqSkJNq3b19r1yIiIiINl017iNLT0/H19cXFxcWyzd/fn6KiInJycmjWrJll++jRo9mxYweTJ0/G0dERBwcH3njjDby9va2OGR0dTUxMDC+88IJlW0ZGBjk5OXzyySfMmzcPV1dXbr31VqZPn47BYKj9CxUREZF6zaY9RAUFBVZhCLC8Li4uttqenZ1Neno6Tz31FOvWrWPs2LHMmzePzMxMq3br1q1j+PDhBAYGWrYlJSUB4Ofnx2uvvcasWbN47bXXWLt2bW1cloiIiDQwNu0hcnV1LRd8yl67ublZbV+5ciVdunRhypQpACxevJhRo0bx8ccfc++99wJgNBr58ssvWb58udW+/fv3Z+/evfj6+gIQEhJCVlYWH3zwAdOmTauNSxMREZEGxKY9RIGBgWRnZ2M0Gi3b0tPTcXNzw8vLy6rt4cOH6dq1q+W1g4MDXbt2JSUlxbItJiYGo9HIoEGDyp2rLAyVCQ4OJi0traYuRURERBowmwai0NBQnJyciImJsWyLjo4mLCwMBwfr0gICAkhMTLTadvz4cVq3bm15HRsbS/fu3XF1dbVqt379em688UbMv1pE6OjRo3Ts2LEGr0ZEREQaKpsGInd3d8aNG8fChQs5ePAg27dvJyoqiqlTpwIXe4sKCwsBmDhxIuvWrePTTz/lxIkTrFy5kpSUFMaPH285Xnx8vNXMsjLXXnst6enpPPfcc5w4cYJNmzaxevVqZs6cWTcXKiIiIvWazRdmnDdvHgsXLuTuu+/G09OThx56iBEjRgAQGRnJsmXLmDBhAqNHj+bChQu88cYbpKamEhoaytq1a/Hz87McKyMjg9DQ0HLnCAoKYtWqVaxYsYIPPvgAPz8/5syZw+jRo+vsOitSajITczqXjLxi/D1d6B3kjaODZr2JiIjUNYPZrIdRVFZGRs09y2xHfAbP70jgbN4vg8oDPF14bEgnhnT2r5mTiIiI2DGDAfz9K/csMz3t3gZ2xGcw97MjVmEI4GxeMXM/O8KO+AwbVSYiImKfFIjqWKnJzPM7Eq7Y5oWvEik1qeNORESkrigQ1bGY07nleoZ+K+18ETGnc+uoIhEREVEgqmMZVwlDVW0nIiIiv58CUR3z93S5eqMqtBMREZHfT4GojvUO8ibgKmEnsKkrvYO8r9hGREREao4CUR1zdDDw2JBOV2zz6A3BWo9IRESkDikQ2cCQzv48N6ZbuZ6iZk2ceW5MN61DJCIiUse0MGMV1OTCjPDLStUv/e84R1LPM2NgG+4b1KHmTiAiImLHtDBjA+HoYCCijQ+39moJwO6kbBtXJCIiYp8UiOqBQR2bYQDizuZx9nyRrcsRERGxOwpE9UCzJi70aHmxS2/38SwbVyMiImJ/FIjqiciOfgDsTMy0cSUiIiL2R4Gonojs2AyA/SdzKCwptXE1IiIi9kWBqJ7o3NyDwKauFBlNRCfrOWYiIiJ1SYGonjAYDJZeop1Jum0mIiJSlxSI6pHBl8YR7UrKQstDiYiI1B0Fonokoo03rk4OpJ0vIj79gq3LERERsRsKRPWIm7MjA9r5Ahd7iURERKRuKBDVM2XjiHZpHJGIiEidUSCqZ8oC0aEz58nKL7ZxNSIiIvZBgaieae7pSmigJ2Zgt26biYiI1AkFonrol9tmCkQiIiJ1QYGoHip7jMfen7MpNppsXI2IiEjjp0BUD3UN9MTPw4X8klJ+OKVVq0VERGqbAlE95KBVq0VEROqUAlE9NdgSiLRqtYiISG1TIKqn+rX1xcXRQEpuIcez8m1djoiISKOmQFRPNXFxJKKNDwC7EjXbTEREpDYpENVjg4PLHvaqcUQiIiK1SYGoHisbWB2bco6cghIbVyMiItJ42TQQFRUVMX/+fPr27UtkZCRRUVGXbbtt2zZGjRpFeHg4kyZN4vDhw5b3cnNzCQkJsfoaMGCA5f3s7GweeughwsPDGTJkCBs3bqzV66opLb3c6OTvgckMe37WbTMREZHa4mTLky9fvpxDhw6xdu1aUlJSmDt3Lq1atWLkyJFW7eLj43nsscf4+9//Tp8+fVizZg2zZs1i27ZtuLu7k5CQgI+PD59//rllHweHX7LevHnzKCws5KOPPiI2NpYFCxbQoUMHevbsWWfXWl2Dg5uRkHGBXYlZjAoNtHU5IiIijZLNAlF+fj7r169n9erVdO/ene7duxMfH8/7779fLhDt3r2bTp06MW7cOAAeffRR3n//fRISEggLCyMpKYkOHTrQvHnzcuc5efIkX331FV9++SWtW7emS5cuxMTE8K9//atBBKLIjn68vS+ZPT9nYyw14eSou5wiIiI1zWa/XePi4jAajYSHh1u2RUREEBsbi8lk/bgKHx8fEhISiI6OxmQysWHDBjw9PWnbti0ACQkJtG/fvsLzxMbG0rJlS1q3bm11nh9++KHmL6oWdG/RFB93Z84XGYlNOWfrckRERBolm/UQpaen4+vri4uLi2Wbv78/RUVF5OTk0KxZM8v20aNHs2PHDiZPnoyjoyMODg688cYbeHt7A5CYmIjRaOTWW28lLS2Nvn37Mm/ePAICAkhPTycgIMDq3H5+fqSlpdXNhf5Ojg4GBnXwZdORs+xMzLJMxRcREZGaY7MeooKCAqswBFheFxcXW23Pzs4mPT2dp556inXr1jF27FjmzZtHZubF6ehJSUnk5eUxb948XnzxRc6ePct9991HaWnpZc/z23PUZ5p+LyIiUrts1kPk6upaLpSUvXZzc7PavnLlSrp06cKUKVMAWLx4MaNGjeLjjz/m3nvvZdOmTRgMBst+L730EpGRkcTGxl72PL89R302oJ0vjg4GTmQXcDK7gLa+7rYuSUREpFGxWQ9RYGAg2dnZGI1Gy7b09HTc3Nzw8vKyanv48GG6du1qee3g4EDXrl1JSUkBwN3d3Srg+Pn54ePjQ1paGoGBgWRkZFgdLyMjo8IB2PWVp6sTfVpfvD2oXiIREZGaZ7NAFBoaipOTEzExMZZt0dHRhIWFWU2ZBwgICCAxMdFq2/Hjx2ndujV5eXn069ePvXv3Wt5LS0sjOzubjh070rt3b06fPk1qaqrVeXr37l0r11VbIn/1sFcRERGpWTYLRO7u7owbN46FCxdy8OBBtm/fTlRUFFOnTgUu9hYVFhYCMHHiRNatW8enn37KiRMnWLlyJSkpKYwfPx5PT08iIiJYtmwZBw8e5PDhw/zlL39h8ODBhISE0KZNGyIjI3n88ceJi4tj/fr1fP7555bbbw3FdZfGEf1wKpe8IuNVWouIiEhVGMxms9lWJy8oKGDhwoVs3boVT09PZsyYwbRp0wAICQlh2bJlTJgwAYD169cTFRVFamoqoaGhPPnkk3Tv3h24uFL1s88+y1dffUVxcTFDhw5lwYIFlllomZmZPPnkk3z77bc0b96cv/zlL9x0001Vrjcj4zy2+27BbW9/x89ZBSy9KZThIQ3nlp+IiIgtGAzg79+0cm1tGYgaGlsHon98k8R7359idLcAFo3qevUdRERE7FhVApGWPW5ABgdfHEe0OymLUpNyrIiISE1RIGpAerbypqmrE7mFRg6d0arVIiIiNUWBqAFxcjBwbQdfQLPNREREapICUQMT2VGrVouIiNQ0BaIG5pr2vjgaIDEjn5TcQluXIyIi0igoEDUw3u7O9AwqW7Vat81ERERqggJRAzTYsmq1bpuJiIjUBAWiBmjwpXFE0ck55BeX2rgaERGRhk+BqAFq18yd1j5ulJSa2X8i29bliIiINHgKRA2QwWCwzDbTbTMREZHfT4GogYq8NI5oV1IWJj19RURE5HdRIGqg+rT2xsPFkaz8Eo6m5dm6HBERkQZNgaiBcnZ0YGD7i6tW70rUbTMREZHfQ4GoAYu0TL/XekQiIiK/hwJRA3Zth2YYgGNn8zh7vsjW5YiIiDRYCkQNWLMmLvRo6QXAruPqJRIREakuBaIGbnDwpdlmGkckIiJSbQpEDVzZOKL9J3MoLNGq1SIiItWhQNTAdfL3oEVTV4qMJr5PzrF1OSIiIg2SAlEDd3HV6l8WaRQREZGqUyBqBCKDLz3GIzETs1atFhERqTIFokagbxsf3JwcOJtXzE/pF2xdjoiISIOjQNQIuDo5MKDdpVWr9bBXERGRKlMgaiQ0jkhERKT6FIgaiUGXAtHhM+fJvFBs42pEREQaFgWiRqK5pyuhgZ6Ygd1atVpERKRKFIgakcEdL842020zERGRqlEgakQiLz3GY9/P2RQbTTauRkREpOFQIGpEQgI88fdwIb+klAOncmxdjoiISIOhQNSIOGjVahERkWpRIGpkIi+NI9qZlKVVq0VERCrJpoGoqKiI+fPn07dvXyIjI4mKirps223btjFq1CjCw8OZNGkShw8ftrxXXFzMc889x3XXXUe/fv144IEHSE1Ntdo3JCTE6uvhhx+u1Wuzlf7tfHBxNJCSW0hSZr6tyxEREWkQbBqIli9fzqFDh1i7di1PP/00r7zyCl988UW5dvHx8Tz22GPMmjWLjRs3EhoayqxZsygoKADgpZdeYvv27axcuZIPPvgAo9HIgw8+aOkhSUhI4IYbbmDXrl2WryVLltTptdYVd2dH+rb1AXTbTEREpLJsFojy8/NZv349Tz75JN27d2f48OHMnDmT999/v1zb3bt306lTJ8aNG0fbtm159NFHSU9PJyEhAYBPPvmEv/zlL/Tv359OnTqxePFifvzxR06cOAFAYmIiXbp0oXnz5pYvLy+vOr3euvTL9Hs9xkNERKQybBaI4uLiMBqNhIeHW7ZFREQQGxuLyWQ9ZdzHx4eEhASio6MxmUxs2LABT09P2rZti8lkYsWKFVx77bXlznH+/HngYiBq3759rV5PfVI2sPpgyjlyCkpsXI2IiEj952SrE6enp+Pr64uLi4tlm7+/P0VFReTk5NCsWTPL9tGjR7Njxw4mT56Mo6MjDg4OvPHGG3h7ewOUC0PvvPMOvr6+hISEYDabOX78OLt27eKNN96gtLSUkSNH8vDDD1uduzFp4eVG5+YexKdf4NvjWYzuFmjrkkREROo1m/UQFRQUlAskZa+Li62fxZWdnU16ejpPPfUU69atY+zYscybN4/MzPK3hLZv305UVBSPPfYYLi4upKSkWM71f//3f8ydO5f//Oc/LF++vPYurh4YrOn3IiIilWazQOTq6lou+JS9dnNzs9q+cuVKunTpwpQpU+jRoweLFy/G3d2djz/+2Krd9u3bmT17NnfeeSe33XYbAEFBQezbt49ly5YRGhrK8OHDmT9/PuvWraO0tLQWr9C2yqbf7/k5C2OpVq0WERG5EpsFosDAQLKzszEajZZt6enpuLm5lRvwfPjwYbp27Wp57eDgQNeuXUlJSbFs27RpE4888gi333478+fPt9rfx8cHg8FgeR0cHExRURG5ubk1fVn1RrcWTfF1dyavqJSY0+dsXY6IiEi9ZrNAFBoaipOTEzExMZZt0dHRhIWF4eBgXVZAQACJiYlW244fP07r1q0B2LNnD0888QRTpkzhb3/7m1W7nTt3MmDAAMsUfYCjR4/i4+NjNU6psXF0MHDtpdtmOzXbTERE5IpsFojc3d0ZN24cCxcu5ODBg5axP1OnTgUu9hYVFhYCMHHiRNatW8enn37KiRMnWLlyJSkpKYwfPx6j0cj8+fPp168f99xzD+np6Zav4uJiwsPDcXV1ZcGCBSQlJfHNN9+wfPlyZs6caatLrzPXaRyRiIhIpRjMNny+Q0FBAQsXLmTr1q14enoyY8YMpk2bBkBISAjLli1jwoQJAKxfv56oqChSU1MJDQ21rF8UExPD7bffXuHx33nnHQYMGEB8fDxLly4lJiYGDw8P7rjjDh544AGr22iVkZFxnob0NIy8IiPD/7kHo8nMv//Ul3bNmti6JBERkTpjMIC/f9PKtbVlIGpoGlogAnhg/UH2n8xh9vUdmdK3ta3LERERqTNVCUR6uGsjFxmsVatFRESuRoGokStbj+iH0+c4X2i8SmsRERH7pEDUyLX2cadDsyaUmszsPZFt63JERETqJQUiO1D2bLOdibptJiIiUhEFIjsw+NI4om+PZ1FqamCjwkVEROqAApEdCGvlhZebE7mFRg6d0arVIiIiv6VAZAecHAxc094XgP8lapFGERGR31IgshODO2r6vYiIyOUoENmJazr44miApMx8TucWXH0HERERO6JAZCe83JzpFeQNwG4920xERMSKApEd+WX6vQKRiIjIrykQ2ZGycUTRp3K4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IuvWrePTTz/lxIkTrFy5kpSUFMaPH2/LS7Arv/48Ro4cyblz53jmmWdISEjgmWeeoaCggFGjRtV+IbU+sV8ajfz8fPMTTzxh7t27tzkyMtL89ttvW97r0qWLZZ2IG2+80dylS5dyX3PnzrVR5Y1TZT+P39I6RLWjKp/H999/bx4/fry5R48e5rFjx5r3799vg4obt6p8HuvWrTOPHDnS3Lt3b/OkSZPMhw4dskHF9uO3P4N++3nExsaax40bZw4LCzPfeuut5sOHD9dJXQaz+VK/lIiIiIid0i0zERERsXsKRCIiImL3FIhERETE7ikQiYiIiN1TIBIRERG7p0AkIiIidk+BSEREROyeApGIiIjYPQUiEbGJl19+mbvuusvWZVxVSEgI+/bts3UZIlLLFIhERETE7ikQiYiIiN1TIBKR3+2dd97hhhtuICwsjAkTJvD999+zb98+QkJCrNr99a9/5a9//avldUlJCU8++SS9evVi2LBhbN682fJeXFwcd9xxB7169WLw4MG88sorlvfS0tJ4+OGH6devHz169GD8+PFER0cDcOrUKUJCQvj6668ZMmQI4eHhLFmyhJ9++okJEybQu3dvZs2aRV5enqWmJUuWcN9999GzZ0/GjRvHgQMHKrzO4uJilixZwoABAxgwYABz5swhJyfnit+HyjCbzbz++usMGTKEHj16EBkZaXW9d911F4sXL2bo0KH84Q9/4NixY4SEhPDqq6/Sr18//v73v1fqPCJyeQpEIvK7HDlyhOXLl/P000/z3//+l759+zJ79mxMJtNV9/3hhx8A2LBhA5MmTWLOnDmcOHECgCeeeILQ0FA+//xznnnmGd58802++eYbAObMmUNpaSkffvghn376KYGBgSxcuNDq2KtWreKf//wnixcv5t133+XBBx/kscce46233iImJoZ///vflrYffvghnTp14pNPPqFfv37ce++9ZGVllav3hRde4NChQ6xevZp33nmHvLw8Hnnkkd/9ffj0009Zu3YtzzzzDF988QUPPPAAL7/8MocPH7a02bBhAytWrOCVV17Bw8MDgAMHDvDxxx8zderUq55DRK7MydYFiEjDdvr0aQwGA61ataJ169bMnj2bG264AbPZfNV9AwICWLhwIc7OzgQHB/P111+zfv165syZw+nTpxk6dChBQUG0adOGt99+m9atW2M2mxk2bBg33ngjLVq0AGDKlCnce++9Vse+//776dq1K127dmXp0qX88Y9/ZNCgQQBcc801JCUlWdp26tSJOXPmADBv3jx27NjB5s2bufPOOy1tCgoKeO+99/j4448tPV/Lly9nwIABHDt27LLfB5PJhIPDlf/2bNmyJcuWLeOaa64BYNKkSbz66qvEx8fTvXt3AP7whz/Qp08f4GIvGMDdd99N27Ztr/p9FpGrUyASkd8lMjKSLl26cPPNN9OtWzeGDh3Kbbfdxs8//3zVfUNDQ3F2dra87t69O4mJiQDMmjWLF154gY8++og//OEPjB07lubNmwMXA8PmzZs5cOAAx48f59ChQ+V6Ytq0aWP5bzc3N4KCgqxeFxcXW16XBQ0ABwcHunXrZqmjTHJyMiUlJdxxxx1W200mEz///DPXXXddhd8HJ6er/5gdOHAgsbGxPP/88yQmJnL06FHS09OtrunX9V9pm4hUj26Zicjv4u7uzvr161m7di39+/dnw4YNTJgwAYPBUK6t0Wi0ev3bnhOTyWQJSPfeey/btm3jnnvuITk5mbvvvpv169djMpmYPn06UVFRtGrVihkzZrB8+fJy53J0dLziuX7tt6GltLS0XPvS0lIA/vWvf/Hpp59avrZu3cqgQYMu+31IS0u77HnLrF+/nmnTplFUVMSIESNYs2aNpferjKura7n9KtomItWjQCQiv8sPP/zAG2+8wcCBA5k3bx5ffPEFRUVF7N+/H8AyeBl+udVTJj4+3ur1wYMH6dixI0VFRSxZsgQXFxf+9Kc/8e677zJx4kS2bNlCQkIC3333HWvWrOG+++7jD3/4A2fPngWo1G26ihw9etTy36WlpcTFxZUbEN6mTRscHR3JycmhXbt2tGvXDk9PT5YtW0ZmZuZlvw9lg72v5IMPPuCBBx5g/vz5jBs3Dl9fXzIzM6t9PSJSdQpEIvK7uLm58eqrr7J+/XpOnTrFpk2byM/PZ9iwYbi5ufH666+TnJzMm2++yZEjR6z2TUlJYfHixSQmJvLqq69y5MgRJk2ahKurKwcOHGDx4sUkJSXx448/8v3339OtWze8vLxwcHBg06ZNnD59mi+++IKXX34ZwOo2WFXs37+fqKgokpKSeOaZZygoKGDkyJFWbTw9PbnttttYuHAh+/btIyEhgSeeeIITJ07QunXry34ffhusKuLr68uePXsst//+8pe/UFJSUu3rEZGqUyASkd8lNDTUMgts1KhRvP7666xYsYKuXbuyePFiNm3axE033URcXBxTpkyx2vf6668nJyeH8ePH8/nnn/Paa68RGBgIwIsvvkhBQQG33norM2bMoG/fvtx///20aNGChQsXsnr1am666SZWrVrFggULcHJyKhe4KmvIkCHs3buXcePGceTIEd5++228vLzKtfvrX//KNddcw8MPP8zEiRNxcnJi1apVODo6Xvb7EBwcfNXzz58/n7y8PMaOHctDDz1ESEgIw4cPt+q5EpHaZTCrT1ZE7FjZukjPPvusjSsREVtSD5GIiIjYPU27FxGpRVu2bLFanfu3IiIiePPNN+uwIhGpiG6ZiYjUogsXLpCRkXHZ993c3CzjpkTEdhSIRERExO5pDJGIiIjYPQUiERERsXsKRCIiImL3FIhERETE7ikQiYiIiN1TIBIRERG7p0AkIiIidk+BSEREROze/wMMvtqASTLfswAAAABJRU5ErkJggg=="
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# subsamples\n",
    "scores = []\n",
    "subsamples_arr = [x/10 for x in range(1, 11)]\n",
    "for i in subsamples_arr:\n",
    "    xgb = XGBClassifier(\n",
    "        n_estimators=100,\n",
    "        objective=\"multi:softprob\",\n",
    "        n_jobs=-1,\n",
    "        max_depth=md,\n",
    "        min_child_weight=mcw,\n",
    "        subsample=i\n",
    "    )  # 其他参数默认\n",
    "    xgb.fit(x_train_pca, trainY)\n",
    "    y_pre = xgb.predict_proba(x_val_pca)\n",
    "    s = log_loss(y_val, y_pre, eps=1e-15, normalize=True)\n",
    "    scores.append(s)\n",
    "#画图\n",
    "plt.plot(subsamples_arr, scores, \"o-\")\n",
    "plt.xlabel(\"subsamples_arr\")\n",
    "plt.ylabel(\"scores(log_loss)\")\n",
    "plt.grid()\n",
    "# 最小损失值即为最优\n",
    "ss = subsamples_arr[np.argmin(scores)]\n",
    "print(\"subsamples最优值={}\".format(ss))"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2024-01-04T06:50:01.037729700Z",
     "start_time": "2024-01-04T06:49:35.326663200Z"
    }
   },
   "id": "4fbe70e1db35b153"
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "outputs": [],
   "source": [
    "ss=0.6 #防止过拟合"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2024-01-04T06:51:02.314646300Z",
     "start_time": "2024-01-04T06:51:02.294204400Z"
    }
   },
   "id": "a38739ec00e1cc48"
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "consample_bytree最优值=0.6\n"
     ]
    },
    {
     "data": {
      "text/plain": "<Figure size 640x480 with 1 Axes>",
      "image/png": "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0qRJeOGFF+p1nYbIyiqEeO8WEZmL02l5eGn7uQfu9+m4LiwESNSIJBLA3d2hfvuKmRCZGyZERFQfGq2Ap9fHPLBx5Q8zevKWDVEjakhCxEk0REQGxmXeROaHCRERUSPgMm8i88JbZg3AW2ZE1FAarcBl3kQiacgtM1G73RMRNXXVy7yJyLTxlhkRERFZPCZEREREZPGYEBEREZHFY0JEREREFo8JEREREVk8JkRERERk8ZgQERERkcVjQkREREQWjwkRERERWTxWqm4ACavtExERmY2G/N5mLzMiIiKyeLxlRkRERBaPCRERERFZPCZEREREZPGYEBEREZHFY0JEREREFo8JEREREVk8JkRERERk8ZgQERERkcVjQkREREQWjwkR1ZtKpUJERAS6d++OsLAwREdH33Pfw4cPY8SIEQgJCcHw4cPx22+/GTFSy9CQz6PajRs3EBISgpiYGCNEaFka8nkkJiZiwoQJ6NKlC4YPH44TJ04YMVLL0JDP48CBAxgyZAhCQkIwYcIEXLhwwYiRWpby8nIMGzbsvj+DLl68iLFjx6Jr164YM2YM4uPjjRIbEyKqt6ioKMTHx2PTpk1YsmQJPvroI/zyyy+19ktISMCsWbMwZswY7N69G+PHj8crr7yChIQEEaJuuur7efxdZGQkSkpKjBShZanv51FYWIhp06ahQ4cO2LNnDwYOHIhZs2YhOztbhKibrvp+HklJSXjttdfw4osv4ocffkBAQABefPFFlJaWihB106ZSqfDqq68iKSnpnvuUlJTghRdeQPfu3bFr1y6EhITgxRdfNM7PLYGoHoqLi4WgoCDhxIkTum0ff/yxMGnSpFr7rlmzRpg+fXqNbdOmTRPee++9Ro/TUjTk86j2ww8/COPHjxf8/PxqHEcPryGfx6ZNm4QBAwYIarVat2306NHC4cOHjRKrJWjI5/HFF18Io0aN0j0uLCwU/Pz8hHPnzhklVkuRlJQkPP3008Lw4cPv+zNox44dQr9+/QStVisIgiBotVph4MCBws6dOxs9Ro4QUb0kJCRArVYjJCREty00NBRxcXHQarU19h01ahRef/31WucoLCxs9DgtRUM+DwDIzc3FmjVr8NZbbxkzTIvRkM/j5MmT6N+/P2QymW7bzp070adPH6PF29Q15PNwdnZGcnIyTp8+Da1Wi127dkGpVKJ169bGDrtJO3nyJHr16oVt27bdd7+4uDiEhoZCUtWmXiKRoFu3boiNjW30GOWNfgVqEjIzM+Hi4gJra2vdNnd3d6hUKuTl5cHV1VW3vX379jWOTUpKwvHjxzF+/HijxdvUNeTzAIBVq1Zh1KhR8PX1NXaoFqEhn0daWhq6dOmCRYsW4dChQ/D29sb8+fMRGhoqRuhNUkM+j6FDh+LQoUOYOHEiZDIZpFIpPvvsMzg5OYkRepM1ceLEeu2XmZmJDh061Njm5uZ239tshsIRIqqX0tLSGj9cAOgel5eX3/O4nJwczJ49G926dUP//v0bNUZL0pDP488//8Tp06fxf//3f0aLz9I05PMoKSnB559/Dg8PD6xfvx49evTA9OnTcevWLaPF29Q15PPIzc1FZmYmFi9ejO3bt2PEiBEIDw/nnC6R3Ouzu9/vGUNhQkT1olAoav2HrH5sY2NT5zFZWVmYOnUqBEHAhx9+CKmU/90Mpb6fR1lZGRYvXowlS5bc83Oih9eQ7w+ZTIaAgADMmTMHnTp1wrx58+Dj44MffvjBaPE2dQ35PN555x34+fnhueeeQ+fOnbFs2TLY2tpi586dRouX7rrXZ2eMn1/8DUX14uXlhdzcXKjVat22zMxM2NjYwNHRsdb+t2/fxnPPPYfy8nJs3ry51i0cejj1/TzOnTuHtLQ0zJkzByEhIbo5FTNnzsTixYuNHndT1ZDvDw8PD7Rr167GNh8fH44QGVBDPo8LFy6gY8eOusdSqRQdO3ZEenq60eKlu7y8vJCVlVVjW1ZWFjw9PRv92kyIqF4CAgIgl8trTGw7ffo0goKCao38lJSUYMaMGZBKpfj666/h5eVl5Gibvvp+Hl26dMGvv/6K3bt3674A4O2338Yrr7xi5KibroZ8fwQHByMxMbHGtitXrsDb29sYoVqEhnwenp6eSElJqbHt6tWraNmypTFCpf/RtWtXnD17FoIgAAAEQcCZM2fQtWvXRr82EyKqF1tbW4wcORKRkZE4d+4cDh48iOjoaEyZMgVA5V9fZWVlAIDPPvsM169fx+rVq3XPZWZmcpWZAdX387CxsUGbNm1qfAGVf4W5ubmJ+RKalIZ8f4wfPx6JiYlYt24dUlNT8cEHHyAtLQ0jRowQ8yU0KQ35PMaNG4ft27dj9+7dSE1NxTvvvIP09HSMGjVKzJdgUf7+eQwePBgFBQVYvnw5kpOTsXz5cpSWlmLIkCGNH0ijL+ynJqOkpER44403hODgYCEsLEz44osvdM/5+fnp6kQ8+eSTgp+fX62v+fPnixR501Tfz+N/sQ5R42jI53Hq1Clh1KhRQufOnYURI0YIJ0+eFCHipq0hn8f27duFwYMHC8HBwcKECROE+Ph4ESK2HP/7M+h/P4+4uDhh5MiRQlBQkPDMM88IFy5cMEpcEkGoGpciIiIislC8ZUZEREQWjwkRERERWTwmRERERGTxmBARERGRxWNCRERERBaPCRERERFZPCZEREREZPGYEBEREZHFY0JERA+0bt06TJ48WewwanjzzTfx5ptvGuRc/v7+iImJ0evY48eP1+qFRUTmhwkREdFDeP7552t15yYi88OEiIiIiCweEyIiC5Oamorp06cjJCQETzzxBDZv3gwASElJwfTp09GtWzc8/vjj+Oijj6DVamsdX1FRgYULF6JXr14ICQnBSy+9hNu3bwMABEHAp59+in79+qFz584ICwvDRx99pDt28uTJ2LhxI/75z3+iS5cueOaZZ5CamopFixYhJCQEgwYNwsmTJwEAMTEx6N27NzZv3oxevXrh0UcfxX/+8597vq4DBw5g6NCh6Nq1K5555hndeerrr7/+wqBBg9C1a1e88soryM/PBwD885//xNtvv11j35deegnvv/8++vXrBwCYMmUK1q1bh127dmH8+PF4+eWXERoaih9//BGCIODjjz9GWFgYunfvjpdeegnp6em6cxUUFGDevHno1q0bwsLCsGzZMl3nbwB47733EBYWhi5dumDy5MlISkqq1+spLy/HypUr8fjjjyMwMBD9+vXDtm3bdM/369cPa9asQVhYGEaOHIkTJ06gX79+WLJkCUJDQ/H555836P0jMndMiIgsiEqlwrRp02Bvb4/t27dj8eLFWLt2LX744QdMnDgRnp6e2LFjB5YsWYKvv/5alyz93ZYtW/DXX38hOjoa3333HYqLi7FixQoAwO7du7Fp0yYsX74cv/zyC15++WWsW7cOFy5c0B3/8ccfY9y4cdi1axcKCwvxzDPPwN3dHd999x18fX1rJB/Z2dnYvXs3oqOj8dZbb2HDhg3Yvn17rZgSEhIwf/58/Otf/8KPP/6Ip59+GjNnzkRqamq935stW7ZgwYIF2LJlC65evYqVK1cCAJ566in8+uuvqO6DXVhYiGPHjuGpp57Cd999B6ByjtW0adMAAGfPnkWHDh2wfft2hIWF4euvv8aePXvw7rvvYtu2bXBzc8O0adNQUVEBAFiwYAEKCwvx7bff4pNPPsH58+fx1ltvAahM8rZt24b3338fP/30E9zd3REeHl6v1/P555/j8OHDWLduHX755ReMHDkSy5Ytq3F7b8+ePdi4cSNWrVoFiUSCmzdvory8HLt27cKwYcPq/d4RNQkCEVmMgwcPCsHBwUJhYaFu23fffSd8+eWXQp8+fYSKigrd9m+++UZ47LHHBEEQhA8//FCYNGmSIAiCsGzZMmH48OFCbm6uIAiCcOPGDSE+Pl4QBEE4fvy48Pvvv9e45mOPPSZ8//33giAIwqRJk4RXX31V91xUVJTwxBNPCFqtVhAEQTh8+LAQGBgoCIIgnDhxQvDz8xMuXbqk2/+DDz4QRo0aJQiCIMyfP1+YP3++IAiC8PrrrwsrV66scd1Zs2bV2nYvfn5+wtdff617HBMTI3Tq1EkoLCwU8vPzhcDAQOHUqVOCIAjCrl27hGHDhtU49sSJE4IgCMLOnTsFf39/obS0VPd87969hd9++033WK1WC4888ojw22+/CampqULHjh2FgoIC3fMJCQm6bV988YXw2GOPCTdv3hQEQRCys7OFv/76q16v6cCBAzX2ValUgp+fn25b3759hTVr1uier36/k5OT63V+oqZGLnZCRkTGc/XqVbRt2xZKpVK3bcyYMViyZAkCAwMhl9/9kRASEoLMzEwUFBTUOMezzz6LvXv3IiwsDD179sSAAQMwevRoAMAjjzyCuLg4vPvuu0hJScGlS5eQmZlZ49Zby5Ytdf+2sbFBixYtIJFIdI+rR04AwM7ODh07dtQ97ty5M6Kjo2u9rpSUFOzbt6/GLaGKigqEhYXV+70JCgrS/btTp05Qq9W4fv06OnXqhN69e+OXX35BaGgo9u3bh6FDh97zPG5ubrCxsQEAFBcXIyMjA//+978hld4dkC8rK8O1a9cgkUig1WrRu3fvGufQarVITU3FU089ha+//hr9+/dHcHAwBgwYgGeeeaZer2fAgAH4448/sGrVKly5cgUXL14EAGg0Gt0+3t7etY77++dDZEmYEBFZkL8nPH+nUChqbatOYv7+CxQAfH19cejQIRw+fBiHDx/Ge++9h59++glbtmzBd999hxUrVmDs2LEYNGgQ5s+fjylTptw3hr8nCg+KV6vV6pKnv9NoNJg5cyZGjhxZY3t1YlIfMplM92+h6vaYlZUVAGDYsGFYvXo1Zs+ejT///BMLFy6853n+/l5Wv3cffPAB2rZtW2M/JycnnDp1Cg4ODti5c2et83h5ecHGxgb79u3DH3/8gd9//x0bN27E9u3bsXv3btja2t739axduxY7duzA6NGjMXLkSCxZskQ356muWO+3jcgScA4RkQXx8fFBamoqSktLddtWr16Nb775BhcuXKgxOnP27Fm4urrC2dm5xjl2796N33//HUOGDMHq1auxYcMGnD59GtnZ2fj222/x8ssvIyIiAiNHjoSLiwuys7N1CUZDFRQU4MaNG7rH58+fh7+/f6392rZtixs3bqBNmza6r23btuG///1vva91+fJl3b/PnTsHKysr3WhJv379UFBQgI0bN8Lf3x+tW7eu1zkdHR3h5uaGzMxMXVzNmzfHmjVrdKN1hYWFkEgkuufLysoQFRWF8vJyHD58GDt27MATTzyBpUuX4ocffsC1a9dqxHovW7duxaJFi/D6669j6NChus9c38+CqKljQkRkQcLCwuDu7o7FixcjJSUFv/32G7Zu3Yr3338f5eXluu0HDx7EunXrMGHChFojMoWFhVi+fDmOHz+OtLQ07NmzB82aNYOLiwtcXFxw/PhxXL16FfHx8fj3v/+NiooKlJeX6x3zokWLcPnyZezfvx9fffUVnnvuuVr7PP/88/j555+xefNmXL9+HV9++SW+/PJL+Pj41Ps6a9euxfHjxxEbG4u3334b48eP143C2NjYoH///vjiiy/w1FNP1TjOzs4OSUlJKCwsrPO8zz//PN5//30cOnQI165dw8KFC3HmzBm0a9cO7du3x+OPP47XX38d586dw4ULFxAeHo6SkhI4OjpCq9UiKioKBw4cwI0bN7Br1y7Y2trW63U5Ozvj999/R1paGk6dOoU33ngDAB7qsyBqynjLjMiCyOVyfPLJJ3jrrbcwatQouLu744033sCAAQPQokULLF++HCNHjoSrqyumTp2KF198sdY5nnvuOWRkZGDevHnIz89H586d8Z///AcymQwRERGIiIjAiBEj4ObmhiFDhsDW1haXLl3SO+bevXtj4sSJsLOzw6uvvorhw4fX2ic4OBhRUVFYt24doqKi0Lp1a7z77rvo0aNHva/zz3/+EwsWLEBubi6GDBmC119/vcbzQ4cOxU8//VRr/tDkyZMRFRWF69ev15jvVG369OkoLi7G4sWLUVRUhM6dO2Pjxo1wcnICAERFReHtt9/G888/D7lcjscff1x3S65fv36YM2cOVq5ciczMTLRr1w6ffPKJ7tj7WbFiBSIjI/HUU0/By8sLY8eOhUwmw6VLl2rNWSIiQCJw/JSITFBMTAymTJmCxMREsUMBAGzfvh0//vgjvv76a7FDIaJGwBEiIqL7SE1NRXx8PP7zn/9g7ty5YodDRI2ECRERNWmjR4/G1atX7/n8+vXr0b1793s+f+PGDSxYsAD9+/ev83adGL744gt8+OGH93x++PDhuuKORFQ/vGVGRE1aenp6jdVz/6t6ebs5KSgoQG5u7j2fVyqVcHNzM2JEROaPCRERERFZPC67JyIiIovHhIiIiIgsHhMiIiIisnhMiIiIiMjiMSEiIiIii8eEiIiIiCweEyIiIiKyeP8P36sJFMImhvUAAAAASUVORK5CYII="
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# consample_bytrees\n",
    "scores = []\n",
    "colsample_bytrees_arr = [x/10 for x in range(1, 11)]\n",
    "for i in colsample_bytrees_arr:\n",
    "    xgb = XGBClassifier(\n",
    "        n_estimators=100,\n",
    "        objective=\"multi:softprob\",\n",
    "        n_jobs=-1,\n",
    "        max_depth=4,\n",
    "        min_child_weight=6,\n",
    "        subsample=0.6,\n",
    "        colsample_bytree=i\n",
    "    )  # 其他参数默认\n",
    "    xgb.fit(x_train_pca, trainY)\n",
    "    y_pre = xgb.predict_proba(x_val_pca)\n",
    "    s = log_loss(y_val, y_pre, eps=1e-15, normalize=True)\n",
    "    scores.append(s)\n",
    "#画图\n",
    "plt.plot(colsample_bytrees_arr, scores, \"o-\")\n",
    "plt.xlabel(\"colsample_bytrees_arr\")\n",
    "plt.ylabel(\"scores(log_loss)\")\n",
    "plt.grid()\n",
    "# 最小损失值即为最优\n",
    "csb = colsample_bytrees_arr[np.argmin(scores)]\n",
    "print(\"consample_bytree最优值={}\".format(csb))"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2024-01-04T07:01:18.280989300Z",
     "start_time": "2024-01-04T07:00:53.553164100Z"
    }
   },
   "id": "c88af6468a571a61"
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "eta最优值=0.2\n",
      "n_estimator=100\t max_depth=4\t min_child_weights=6\t subsamples=0.6\t consample_bytrees=0.6\t etas=0.2\t\n"
     ]
    },
    {
     "data": {
      "text/plain": "<Figure size 640x480 with 1 Axes>",
      "image/png": "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akWqpzIFnvXr1/P0008zefLkwsCzb98+Xn/9dV555RX69etXrkWKiFRVW2OSeWVrLGcz8grbvNxcyLXayCuw4e7ixL96tuD2Tg1w0l0dEdOU6ZHWwIEDmTBhArfddluR9pUrV/L+++/z9ddfl1uBlU2PtESkpLbGJDNt7cHLvt+srgevDutA4zoelViVSPVS0kdaZZqldfr0aUJDQ4u1h4WFER8fX5ZTiojYlQKbwStbY6/YJzvPRkNvPcISqQrKFHjat2/Pxx9/XKz9888/p127dtdclIhIVReZkFbkMdalnMnIJTIhrZIqEpErKdMYnqeffppx48axbds2goKCADh8+DCpqaksWbKkXAsUEamKkq8SdkrbT0QqVpkCT8eOHdm4cSNff/01x44dw2q1MmTIEHr06FG4Lo+IiCPz8yzZGjol7SciFatMj7QiIiIYOnQorVu35qGHHmLr1q18+OGH3HXXXXzzzTflXaOISJXTqWFt3Fyu/C00wMuNzoHelVSRiFxJmQLPiy++yM0330ynTp344osvcHNz46effmLOnDm88cYb5V2jiEiVs3b/aXKttiv2mdy7Jc5OmoouUhWUKfDExMRw77334uHhwdatWxkwYACurq5cd911JCYmlneNIiJVSmxSJq9+fxSAW9oHUO8vj60CvNx4eUh7+rT2M6M8EbmEMo3h8fPzIzY2lqysLA4ePMjTTz8NwM8//1yqlZZzc3OZPXs2mzZtwt3dnbFjxzJ27NhL9t28eTOvvvoqp0+fpl27djzzzDMEBwcXvv/hhx/y/vvvk5GRwaBBg3j22Wfx8NDaFyJSvrLzC5i+7iC5VhvXN6/LcwPbYBgUW2lZd3ZEqpYy3eG57777ePTRR7n99tsJCQnhuuuu45133mH27Nk8+uijJT7P/Pnz2b9/P8uWLWPWrFksWrSIDRs2FOsXExPDlClTmDBhAmvWrCEoKIgJEyaQnZ0NwMaNG1m0aBHPP/88y5YtIyoqigULFpTl0kRErmjBt7H8ej4bf09Xwge2xcliwdnJQlhjH24KqkdYYx+FHZEqqMybhx46dIiEhAR69OiBu7s7kZGRuLu7l3gdnqysLLp37867775Lt27dAHj77bfZvn07H330UZG+H374IWvXrmXlypUAZGRkEBYWxpdffklISAh33XUX3bt3Z9KkSQD88ssvjBs3jh07dpT6Lo9WWhaRy1l/8AyzvjmMkwXevrMjYY19zC5JpNqr0JWWAYKCgujXrx/u7hdXEe3cuXOpFh2Mjo7GarUWWbE5LCyMqKgobLaiAwF9fHyIjY0lIiICm83GypUr8fT0pEmTJhQUFLBv3z66du1a2L9z587k5+cTHR1d1ssTESni+PksXtoSA8AD3Zsq7IjYmTLvln6tkpKSqFOnDq6ufwz28/PzIzc3l9TUVOrWrVvYfvPNN7N161ZGjx6Ns7MzTk5OLF68GG9vb1JSUsjNzaVevXqF/V1cXPDx8eH06dOVek0i4phyrTZmrDtEdr6NsMbejO3exOySRKSUynyH51plZ2cXCTtA4eu8vKIrk6akpJCUlMRzzz3HF198wdChQ5k+fTrnzp0jJyenyLF/PtdfzyMiUhZvbDvKkaRMfDxqMOfmdhqjI2KHTAs8bm5uxQLJ769/f0z2u4ULF9KmTRvuuusuOnTowJw5c/Dw8GDFihW4ubkVOfbP59IsLRG5Vt/FJPNF5MXlNsIHtcXf083kikSkLEwLPAEBAaSkpGC1WgvbkpKScHd3p3bt2kX6HjhwoMj4ICcnJ9q1a0diYiI+Pj64ubmRnJxc+L7VaiU1NRV/f/+KvxARcVinLuQwZ+MRAO7p2ojrm9e9yhEiUlWZFniCgoJwcXEhMjKysC0iIoKQkBCcnIqWVa9ePeLi4oq0HTt2jEaNGuHk5ERISAgRERGF70VGRuLi4qKd20WkzKwFNmauiyY910qHBl480qOZ2SWJyDUwLfB4eHgwbNgwwsPD2bt3L1u2bGHp0qWMGTMGuHi35/fxOSNGjOCLL75g9erVHD9+nIULF5KYmMhtt90GwOjRo3n//ffZsmULe/fuJTw8nBEjRuiRloiU2Ts/H2ffqQt4ujkz95YgXJxN+3YpIuWgzOvwlIfs7GzCw8PZtGkTnp6ejBs3jvvuuw+Atm3bMm/ePIYPHw7A8uXLWbp0KadPnyYoKIiZM2cWWWl5yZIlfPjhh+Tl5TFgwABmzZpVOL6nNLQOj4hs//U8/1qxH4CXbw2iTxs9Hhepqkq6Do+pgacqUuARqd6SM3IZ/e/dpGTnc3unBjzdr7XZJYnIFVT4woMiIo6mwGbw7DeHScnOp7V/LZ7o1dLskkSknCjwiIj85sNdJ/jlRCruLk68eEsQbi76FiniKPSvWUQE2HMyjSU/HwdgWr9WNPOtaXJFIlKeFHhEpNpLzc7nma8PYTPglvb1GBxc3+ySRKScKfCISLVmGAazNxzmbEYeTet4MLWvBimLOCIFHhGp1j7dncCPR8/j6mzhxcFB1HR1NrskEakACjwiUm0dPJ3Omz8cA+DxXi1pU8/T5IpEpKIo8IhItZSRa2XGukNYbQZ9WvtxR6cGZpckIhVIgUdEqh3DMHhxcwwJaTk0qO3GMwPaYLFYzC5LRCqQAo+IVDur951m8+EknJ0szL0lCC93F7NLEpEKpsAjItVKbHImr3wXB8Aj1zcjpGFtkysSkcqgwCMi1UZOfgEz1h0i12qje7M63P23RmaXJCKVRIFHRKqNhVvjOHYuC79arswe1BYnjdsRqTYUeESkWth46Cxr9p/GAsy5uR11a7qaXZKIVCIFHhFxeCdSsnlxcwwA47o3oWsTH3MLEpFKp8AjIg4tz2pj5rpDZOUXENrIm3F/b2p2SSJiAgUeEXFob/xwlOizGXi7u/DCze1wcdK4HZHqSIFHRBzWtthkPt+TCED4oLbU83IzuSIRMYsCj4g4pNMXcnh+4xEARocF0qOFr8kViYiZFHhExOFYbQbPfB3NhRwr7et7MfGG5maXJCImU+AREYez5OdfiUq8QC1XZ+be0o4azvpWJ1Ld6buAiDiUncdT+HBnPAAzB7ShkY+HyRWJSFWgwCMiDiM5M4/n1kdjAMM7NqB/W3+zSxKRKkKBR0Qcgs0wmLU+mvNZ+bTyq8UTvVqYXZKIVCEKPCLiEJbtimfXiVTcXZx4cXAQ7jWczS5JRKoQBR4RsXtRCWks/ulXAJ7q24rmvjXNLUhEqhwFHhGxa2nZ+cz8OpoCAwYG1ePW4ACzSxKRKkiBR0TslmEYPL/xCGfSc2lSx4On+7XCYtHWESJSnAKPiNitz/ck8kPcOWo4W3jxliBqubqYXZKIVFEKPCJil6LPpPPGD0cBeOzGFrQN8DS5IhGpyhR4RMTuZOZZmbHuEPkFBr1a+TIitKHZJYlIFafAIyJ2xTAM5m2OIT41h/pebjwzoI3G7YjIVSnwiIhdWbv/NBujk3C2wAu3tMPbo4bZJYmIHVDgERG7EZecyYKtcQA8dH0zOgV6m1yRiNgLBR4RsQs5+QXMWHeIXKuN7k3rMOa6xmaXJCJ2RIFHROzCK9/FcfRcFr61XAkf1BYnjdsRkVJQ4BGRKm9T9FlW7zuNBXh+UFt8a7maXZKI2BkFHhGp0k6mZvPi5hgA7u/WmOua1jG5IhGxRwo8IlJl5RfYmLHuEJl5BXQOrM2D/2hmdkkiYqdMX4c9NzeX2bNns2nTJtzd3Rk7dixjx44t1u+ee+5h165dxdqHDx/OvHnzSEtL47rrrivyno+PDzt37qyw2kWkYi367zEOncnA292FOTe3w8VJ43ZEpGxMDzzz589n//79LFu2jMTERKZNm0bDhg0ZOHBgkX5vvvkm+fn5ha+joqJ4/PHHGT16NACxsbH4+Piwbt26wj5OTrqBJWKvfog7x38iEgB49qa21K/tbnJFImLPTA08WVlZLF++nHfffZfg4GCCg4OJiYnhk08+KRZ4fHx8Cn9fUFDAa6+9xgMPPEBISAgAR48epXnz5vj7+1fmJYhIBTh9IYfnNxwGYFSXQHq28jW5IhGxd6beAomOjsZqtRIaGlrYFhYWRlRUFDab7bLHrVy5krS0NB588MHCttjYWJo1a1aR5YpIJbDaDJ5dH01ajpWgAE8m3tDc7JJExAGYGniSkpKoU6cOrq5/TDH18/MjNzeX1NTUSx5jGAbvvfceY8aMoVatWoXtcXFxnD59mjvuuIMbbriBJ554grNnz1b0JYhIOXt3+3EiEy5Qy9WZFwcH4eqiR9Micu1M/U6SnZ1dJOwAha/z8vIueczOnTs5ffo0I0aMKNJ+9OhRMjIymD59Oq+99hpnz57loYceoqCgoGKKF5Fyt+t4Ch/sOAHAjP6taeTjYXJFIuIoTB3D4+bmVizY/P7a3f3SAxQ3btzIjTfeWGRMD8DXX3+NxWIpPO6NN96gR48eREVF0aVLl/IvXkTK1bnMPJ775jAGMDSkPgPa1TO7JBFxIKYGnoCAAFJSUrBarbi4XCwlKSkJd3d3ateufclj/vvf/zJx4sRi7R4eRf9P0NfXFx8fH86cOVP+hYvINSuwGUQmpJGckUfdWjVYtjOec5l5tPCtyZO9W5pdnog4GFMDT1BQEC4uLkRGRtK1a1cAIiIiCAkJueSU8vPnzxMfH09YWFiR9oyMDHr37s2bb75J9+7dAThz5gwpKSm0aNGi4i9EREpla0wyr2yN5WxG0Tu8Lk4WXhwchHsNZ5MqExFHZeoYHg8PD4YNG0Z4eDh79+5ly5YtLF26lDFjxgAX7/bk5OQU9o+JicHNzY1GjRoVOY+npydhYWHMmzePvXv3cuDAAZ544gluuOEG2rZtW6nXJCJXtjUmmWlrDxYLO3BxhtbxlGwTqhIRR2f69Ifp06cTHBzMvffey+zZs5k0aRIDBgwAoEePHqxfv76w77lz56hduzaWS+yS/PLLL9O+fXvGjx/PPffcQ2BgIAsXLqy06xCRqyuwGbyyNfaKfV79Lo4Cm1FJFYlIdWExDEPfWf4kOTkdfUVEKkZEfCoPfbH3qv3eGdGRsMY+FV+QiNg9iwX8/Lyu2s/0OzwiUj3YDIOfjp0vUd/kSzzuEhG5FqbvpSUiji07v4CvD5zhs90JJR6f4+fpevVOIiKloMAjIhXi9IUclkcmsmrvadJzrQDUrHHxpnJW/uW3jgnwcqNzoHel1Cgi1YcCj4iUq32JF/h0dwJbjyRR8Nt4uEY+7owMDWRwhwB2Hk9l2tqDlz1+cu+WODsVn5ggInItNGj5LzRoWaT0rAU2tsYk8+nuBPafSi9s79rYm5FdGtGjRd0iIeZS6/AEeLkxuXdL+rT2q9TaRcS+lXTQsgLPXyjwiJRcWnY+q/aeYnlkYmF4qeFsYWC7eozsEkibep6XPfbPKy37ebrSOdBbd3ZEpNRKGnj0SEtESu3YuSw+35PAugNnyLVeHI9Tt2YN7ujckOEdG+Bb6+qDjp2dLJp6LiKVRoFHRErEMAx2HE/h04gEtv+aUtjexr8Wo8ICGdC2Hq4uWulCRKomBZ4KpFv24ghy8gtYf/AMn+1O5Nj5LAAsQM9WvozsEkiXRt6XXP1cRKQqUeCpIJcalFnP05UpfVppUKbYhTPpuXwZmciqvadIy7k4rbyWqzNDOtRnRGhDGvl4mFyhiEjJadDyX5THoOXfN0e8nJeHtFfokSrrwKmL08q3HEku3NOqobc7/wxtyJAO9fF00/8niUjVoUHLJinp5og9W/rq8ZZUGVabwXcxyXwakcC+UxcK27s08mZUl0Bu0N9XEbFzCjzlLDIhrchjrEs5k55LZEKaZqiI6S7k5LNm32k+35PImfRcAFycLNwUVI9RoYG0Dbj8tHIREXuiwFPOSrrpoTZHFDP9ej6Lz3dfnFae89u08joeNbi9UwNu79wQvxJMKxcRsScKPOWspJseanNEqWyGYbDreCqf7k4osmt5K7+L08pvalcPN00rFxEHpcBTzjoHelPP0/WKj7VcnS208qtViVVJdZaTX8A3h87y2e4Ejp77Y1p5jxZ1GRUWSNfGPppWLiIOT7O0/qIyZmkBtPavxavDgqlf2/3a/jCRy0jKuDitfEXUH9PKPWo4/TatPJAmdTStXETsn/bSKqPy2kvrcpsj3tm5If+JOMn5rHz8arny2m3BtAu4+gcl8rurLWh58HQ6n+5OYPPhpMJp5Q1qu/HP0ECGdKiPl7tu7IqI41DgKaPy3Dz0cj+YTl3I4fGV+zl6Lgt3FyfmDg7ixpa+5fOHikO73IKWT/RqiZMF/hORQFTiH9PKOwfWZlSXQG5s5YeLppWLiANS4CmjytotPSPXytNfHWTn8VScLPBEr5aM7BJY8X+w2K2SPCqFi5tyDmjrz8gugbSvr7uHIuLYFHjKqLICD4C1wMZL38ayZt9pAP4Z2pAnerXUAm9STIHNYMi7O684GN4C3HtdI0aEBuLv6VZ5xYmImKikgUdzUE3k4uzEzP6tmXRDcwA+35PIk2sOkJVXYHJlUtWUZEFLA+jerK7CjojIJSjwmMxisTDmusa8dGsQbi5O/Hj0POM/j+Lsb6veioAWtBQRuVYKPFVE3zb+/L87O1LHowaHz2Zw/3/2cORshtllSRXw++D3ktCCliIil6bAU4WENKzNB3d1plldD85m5PHgZ1H8dPT81Q8Uh3XsXBYPfhbJl1Gnrto3wMuNzoHelVCViIj9UeCpYgK9PXh/VGe6NvYmK7+Ayav382VkotllSSWzFthYuuMEd30Uwb5T6dRydWZ4xwZXPGZybw14FxG5HM3S+ovKnKV1JfkFNl7cHMO6A2cAGB0WyL9ubKEfaNXA4TMZPL/xMEeSMgG4vnldnu7Xivq13S+7oOXk3i3p09rPrJJFREyjaellVFUCD1zc7PHDXfG8/eOvAPRs6cucW9rhUcPZ3MKkQuRabby/4zj/3hVPgQHe7i5M7t2SQUH1iux1dbWVlkVEqhMFnjKqSoHnd5uizzJ7w2HyCgyCAjx5dVgwfpp67FD2Jl5gzsbD/Ho+G4B+bfx4sk8rfGtpELKIyJUo8JRRVQw8AFEJaUxZfYC0HCsBXm78320daOWvHdftXXZ+AW//+Cuf707AAOrWrMG0fq31eEpEpIQUeMqoqgYegPiUbB5ftZ8TKdnUcnXmpVuD6N6srtllSRntOp7C3M0xJKblAHBLcABP9GyBt0cNkysTEbEfCjxlVJUDD0Badj5PrT3InpNpOFtgWr/W3HaV2TtStWTkWnl921FW/7alSICXGzP6t+YfzRVeRURKS4GnjKp64AHIs9p4YdMRvjl0FoAxf2vEozc0x8migatV3X/jzvHSlpjCWVZ3dGrAxBubU8vVxeTKRETskwJPGdlD4IGLM7je236CJduPA9CntR+zB7XFXTO4qqTUrHwWfhfLxugkABr7uDNzQBvCGvuYW5iIiJ1T4Ckjewk8v1t/8AxzNh7BajPo0MCLhUODNbOnCjEMg82Hk1i4NY6U7HycLDA6rBET/tFU4VREpBwo8JSRvQUegN0nU5m65iBpOVYa1nbjteEdaOGrGVxmS8rI5eUtsWyLOwdAS7+aPHtTW4LrX/0fpoiIlIwCTxnZY+ABOH4+iydW7Sc+NQdPN2devrU91zWtY3ZZ1ZJhGHy1/wyvbYsjI7cAZycLY7s15v5uTajhrN1cRETKkwJPGdlr4IGL40SeXHOAqMQLODtZmNGvNUNC6ptdVrWSmJbDi5uPsPN4KgBBAZ48d1NbrZkkIlJBFHjKyJ4DD1zcnmDOxsOFg2Pv79aYh65vphlcFcxmGHwZmcii/x4jO9+Gm4sTE/7RlFFhjXDRtg8iIhXGLgJPbm4us2fPZtOmTbi7uzN27FjGjh1brN8999zDrl27irUPHz6cefPmAfDhhx/y/vvvk5GRwaBBg3j22Wfx8PAodU32Hnjg4g/fxT8fZ+mOEwD0b+vPrIFtcXPR45SKcPx8Fi9sOkJkwgUAOgfW5pkBbWhat6bJlYmIOL6SBh5TF/+YP38++/fvZ9myZSQmJjJt2jQaNmzIwIEDi/R78803yc/PL3wdFRXF448/zujRowHYuHEjixYtYsGCBfj6+jJ9+nQWLFjAc889V6nXU1U4WSw8fH0zGnm7M3dzDJsPJ3EmPZeFQ9tTp6ZmcJUXq83gP7+cZPHPv5JXYOBRw4mJN7Tgjs4NdEdNRKSKMe0OT1ZWFt27d+fdd9+lW7duALz99tts376djz766LLHFRQUMGTIEPr378/jjz8OwF133UX37t2ZNGkSAL/88gvjxo1jx44dpb7L4wh3eP7sfydSmLb2EOm5VgK93fm/4R1opjsP1ywmKYM5G49w6EwGAN2b1mHGgNY0qO1ucmUiItVLSe/wmPaMIzo6GqvVSmhoaGFbWFgYUVFR2Gy2yx63cuVK0tLSePDBB4GLAWjfvn107dq1sE/nzp3Jz88nOjq64i7ATvytSR3eH9WZht7uJKTlMO7TSCLiU80uy27lF9hY/NOv3PPxHg6dycDLzYVnb2rDG7d3UNgREanCTAs8SUlJ1KlTB1fXPx6x+Pn5kZubS2pq6iWPMQyD9957jzFjxlCr1sVZLxcuXCA3N5d69eoV9nNxccHHx4fTp09X6DXYi+a+NflgdGdCGnhxIcfKxC/3sf7gGbPLsjsHTl3g7o92896OExTYDHq18uWL+8IY0qE+Fj3CEhGp0kwbw5OdnV0k7ACFr/Py8i55zM6dOzl9+jQjRowobMvJySly7J/PdbnzVEd1a7ry9p0dmb3hMFuOJDPrm8PEp2Qz/h9N9cP6KnLyC1j883H+E3ESmwF1PGrwVN9W9Gvjp6+diIidMC3wuLm5FQskv792d7/0o4GNGzdy44034uPjU+Q8fz72z+cqyywtR+Zew5m5g4MI/PFXlu2K570dJziZlsOzA9rgqhlclxQRn8rcTUeIT70YrAcG1WNKr5b41KxhcmUiIlIapv2UCwgIICUlBavVWtiWlJSEu7s7tWvXvuQx//3vf+nbt2+RNh8fH9zc3EhOTi5ss1qtpKam4u/vXzHF2zEni4WJNzRnZv/WOFtgw6GzTPxyL6nZ+Vc/uBrJyLXy0pYYHvpiL/GpOdTzdOXVYcHMubmdwo6IiB0yLfAEBQXh4uJCZGRkYVtERAQhISE4ORUv6/z588THxxMWFlak3cnJiZCQECIiIgrbIiMjcXFxoV27dhVWv70b1rEBrw8PoZarM3sSLjDu00jiU7LNLqtK+PnYeUYui2BF1CkAhoXU5/P7unJDS1+TKxMRkbIyLfB4eHgwbNgwwsPD2bt3L1u2bGHp0qWMGTMGuHi35/fxOQAxMTG4ubnRqFGjYucaPXo077//Plu2bGHv3r2Eh4czYsQIPdK6im7NLs7galDbjRMp2dz/nz1EnkwzuyzTpGXnE/5NNI+t3M+Z9Fwaervz9p0hzBzQBk83U5esEhGRa2TqSsvZ2dmEh4ezadMmPD09GTduHPfddx8Abdu2Zd68eQwfPhyA9evX8+KLL/Ljjz9e8lxLlizhww8/JC8vjwEDBjBr1qzC8T2l4Wjr8JREcmYeU1Yf4ODpdGo4W5h1U1tuCqp39QPtTIHNIDIhjeSMPPw8Xekc6I3zb9s+bD2SxMvfxnI+Kx8LMLJLIA/3aIZHDWdzixYRkSuyi60lqqLqGHjg4kykZ9dH833sOQAeur4pY7s1cZhZSFtjknllayxnM/4Y3F7P05Xx/2jG9l/P8+2Ri2PAmtetyTM3taFjw0uPIxMRkapFgaeMqmvggYt7cL35wzE+/uUkALcEBzCzf2ucLJbL3hmxB1tjkpm29uAV+zhb4N7rGjO2e1PtOSYiYkcUeMqoOgee362ISmTBt7EUGNDCtybpOVaSMoveGZnSpxV9WvuZWGXJFNgMhry7s8idnb9ycbKwdGRnghpc/R+MiIhULXaxeahUTbd3akiD2u5MXXuQo+eyir1/NiOPaWsP8vKQ9hUWegzDwGozyLXayCuwkWe1kfvbr7wCW7H239tyrRfbLr42iE/NvmLYgYubgGZZCyrkOkREpGpQ4JFL6ta0DrVcncm1Xn5fs5c2x+DiBNYCg9zC8GH8FjYKirzOs9r+1OeP3/+5/fd+Ob+1V+aNtuSrhCIREbFvCjxySZEJaZzPuvJihCnZ+UxZfeWxMeXF1dmCq4sTrs5OuLs4Ff7e7S+/d/vt966//f5cZh4bo5Ouen4/T9er9hEREfulwCOXVNI7Hg1ru1HPy61IyCj8/Z8CyV/bC9v+/Pq3/7q6WHBzcS58XcPZglMZZ4sV2Az2nEy74mOtAC83Ogd6l+n8IiJiHxR45JJKesfjuYFtCWvsU7HFXANnJwtT+rS64iytyb1b2tWsMxERKT3Nv5VL6hzoTb2rhB57uTPSp7UfLw9pX+x6ArzcKnTgtYiIVB2alv4Xmpb+h6utX2NvYeFKKy2LiIh90jo8ZaTAU9SlVigO8HJjcu+WdhV2RETEMSnwlJECT3G6MyIiIlWVFh6UcuPsZKnSA5NFRESuRoOWRURExOEp8IiIiIjDU+ARERERh6fAIyIiIg5PgUdEREQcngKPiIiIODwFHhEREXF4CjwiIiLi8BR4RERExOFppeW/sGjHBBEREbtR0p/b2ktLREREHJ4eaYmIiIjDU+ARERERh6fAIyIiIg5PgUdEREQcngKPiIiIODwFHhEREXF4CjwiIiLi8BR4RERExOEp8IiIiIjDU+CRQrm5ucyYMYOuXbvSo0cPli5detm+33//PUOHDiU0NJRbb72Vb7/9thIrrR5K83n87uTJk4SGhrJz585KqLD6Kc1ncvjwYUaNGkXHjh259dZb2bFjRyVWWj2U5vPYvHkzgwYNIjQ0lFGjRnHgwIFKrLR6ycvLY/DgwVf8PnTw4EHuvPNOOnXqxO23387+/fsrvC4FHik0f/589u/fz7Jly5g1axaLFi1iw4YNxfpFR0czceJEbr/9dlavXs3IkSN57LHHiI6ONqFqx1XSz+PPwsPDycrKqqQKq5+Sfibp6emMHTuWVq1a8dVXX9G/f38mTpzIuXPnTKjacZX084iJiWHKlClMmDCBNWvWEBQUxIQJE8jOzjahaseWm5vL5MmTiYmJuWyfrKwsxo8fT9euXVm5ciWhoaFMmDCh4r93GSKGYWRmZhohISHGjh07Ctveeust4+677y7Wd8GCBca4ceOKtI0dO9Z49dVXK7zO6qI0n8fv1qxZY4wcOdJo06ZNkeOkfJTmM1m2bJnRr18/w2q1FrYNHz7c+P777yul1uqgNJ/HBx98YNx2222Fr9PT0402bdoYe/furZRaq4uYmBhjyJAhxq233nrF70PLly83+vTpY9hsNsMwDMNmsxn9+/c3VqxYUaH16Q6PABfv2litVkJDQwvbwsLCiIqKwmazFel722238eSTTxY7R3p6eoXXWV2U5vMASElJYcGCBTz//POVWWa1UprPZNeuXfTt2xdnZ+fCthUrVtCzZ89Kq9fRlebz8PHxITY2loiICGw2GytXrsTT05MmTZpUdtkObdeuXXTr1o3PP//8iv2ioqIICwvD8ts25xaLhS5duhAZGVmh9blU6NnFbiQlJVGnTh1cXV0L2/z8/MjNzSU1NZW6desWtrds2bLIsTExMWzfvp2RI0dWWr2OrjSfB8BLL73EbbfdRuvWrSu71GqjNJ9JfHw8HTt25Nlnn2Xr1q0EBgYybdo0wsLCzCjdIZXm87j55pvZunUro0ePxtnZGScnJxYvXoy3t7cZpTus0aNHl6hfUlISrVq1KtLm6+t7xcdg5UF3eASA7OzsIt84gMLXeXl5lz3u/PnzTJo0iS5dutC3b98KrbE6Kc3n8fPPPxMREcEjjzxSafVVR6X5TLKysliyZAn+/v68++67/O1vf2PcuHGcOnWq0up1dKX5PFJSUkhKSuK5557jiy++YOjQoUyfPl1jqkxyuc/uSj9ryoMCjwDg5uZW7C/b76/d3d0veUxycjL33nsvhmHwxhtv4OSkv07lpaSfR05ODs899xyzZs267Ock5aM0/0acnZ0JCgriX//6F+3bt+epp56iWbNmrFmzptLqdXSl+TwWLlxImzZtuOuuu+jQoQNz5szBw8ODFStWVFq98ofLfXYV/T1MP6EEgICAAFJSUrBarYVtSUlJuLu7U7t27WL9z5w5w1133UVeXh7//ve/iz1ikWtT0s9j7969xMfH869//YvQ0NDC8QwPPvggzz33XKXX7chK82/E39+fFi1aFGlr1qyZ7vCUo9J8HgcOHKBdu3aFr52cnGjXrh2JiYmVVq/8ISAggOTk5CJtycnJ1KtXr0L/XAUeASAoKAgXF5cig8YiIiIICQkpducmKyuLBx54ACcnJz7++GMCAgIquVrHV9LPo2PHjmzatInVq1cX/gJ44YUXeOyxxyq5asdWmn8jnTt35vDhw0Xajh49SmBgYGWUWi2U5vOoV68ecXFxRdqOHTtGo0aNKqNU+YtOnTqxZ88eDMMAwDAMdu/eTadOnSr0z1XgEQA8PDwYNmwY4eHh7N27ly1btrB06VLGjBkDXPw/p5ycHAAWL17MiRMnePnllwvfS0pK0iytclTSz8Pd3Z2mTZsW+QUX/w/K19fXzEtwOKX5NzJy5EgOHz7Mm2++yfHjx3n99deJj49n6NChZl6CQynN5zFixAi++OILVq9ezfHjx1m4cCGJiYncdtttZl5CtfLnz2PgwIFcuHCBuXPnEhsby9y5c8nOzmbQoEEVW0SFTnoXu5KVlWVMnTrV6Ny5s9GjRw/jgw8+KHyvTZs2hWsk3HTTTUabNm2K/Zo2bZpJlTumkn4ef6V1eCpOaT6TX375xbjtttuMDh06GEOHDjV27dplQsWOrTSfxxdffGEMHDjQ6Ny5szFq1Chj//79JlRcffz1+9BfP4+oqChj2LBhRkhIiHHHHXcYBw4cqPCaLIbx2z0lEREREQelR1oiIiLi8BR4RERExOEp8IiIiIjDU+ARERERh6fAIyIiIg5PgUdEREQcngKPiIiIODwFHhEREXF4CjwiUuV98803nDt3zuwyRMSOKfCISJWWkJDA448/TnZ2ttmliIgdU+ARkSpNu9+ISHlQ4BGRKuHUqVM89NBDdOrUiT59+rBo0SIKCgro27cvAH379mXlypUYhsE777xDnz596NChAz169GDRokWF54mOjmbkyJF06tSJG264och7VxMREcGoUaPo1KkTnTt35sEHH+Ts2bMArFy5kpEjR/Loo48SFhbG2rVrueeee5gzZw59+/alV69eZGRklO8XRUTKjQKPiJjOMAwmTpyIr68vq1atYt68eXz11Ve88847LF++HIDly5dz8803s3r1apYtW8bcuXPZsGEDjz76KG+++SYHDhwAYOrUqQQFBbFu3Trmzp3Le++9x7Zt265aQ3p6OhMmTOD6669n3bp1vP/++5w4cYIlS5YU9tmzZw+tWrXiiy++oEePHsDFILRgwQIWLVqEp6dnBXx1RKQ8uJhdgIjIjh07SExMZPny5Tg5OdGiRQumTZvG9OnTGTp0KAB169bF3d2dBg0aMG/ePP7+978DMGrUKN566y1iYmIIDg4mISGBvn37EhgYSOPGjfnggw9o1KjRVWvIycnhkUce4f7778disdC4cWMGDBjA3r17C/tYLBYefvhh3N3dC9t69epFly5dyvkrIiLlTYFHREwXFxdHamoqYWFhhW02m42cnBxSU1OL9O3evTtRUVG88sorxMXFcejQIZKSkrDZbABMmDCBV199lc8//5xevXoxdOhQ/P39r1qDv78/w4YN48MPP+TQoUPExsZy+PDhImHG19e3SNgBCAwMvIYrF5HKokdaImI6q9VKixYtWL16deGvtWvXsmnTJry8vIr0Xb58Offddx+5ubkMGDCADz/8kPr16xe+P378eDZv3syDDz5IfHw89957b+FjsSs5c+YMQ4YMYceOHQQHBzNjxgzuv//+In3c3NyKHXepNhGpehR4RMR0zZs3JzExkbp169K0aVOaNm3KyZMneeONN3BxKXoj+tNPP+XRRx9lxowZDBs2jDp16nDu3DkMwyA3N5cXXngBV1dX7r//fj766CNGjBjBxo0br1rD5s2b8fb2ZvHixdx777107dqV+Ph4zRITcRAKPCJiuh49ehAYGMhTTz3F4cOH+eWXX3j22Wfx8PDAw8MDuDj7KjMzkzp16rB9+3aOHTvG/v37eeKJJ8jPzycvLw83Nzd2797NnDlzOHr0KPv27eOXX36hffv2V63Bx8eHxMREtm/fTnx8PEuWLGHTpk3k5eVV9OWLSCVQ4BER0zk7O/P//t//w2azMWLECCZNmkTPnj155plnqFu3LkOGDOHxxx9n+fLlzJgxg4yMDIYOHcqkSZNo27Yt/fv359ChQwC89tprZGdnc8cddzBu3Di6du3KI488ctUaBg0axJAhQ/jXv/7F7bffzs6dO5k2bRpxcXEKPSIOwGLofq2IiIg4ON3hEREREYenaekiUi1069btio+mvv76axo2bFiJFYlIZdIjLRGpFuLj4wvX6rmUwMDAYjPCRMRxKPCIiIiIw9MYHhEREXF4CjwiIiLi8BR4RERExOEp8IiIiIjDU+ARERERh6fAIyIiIg5PgUdEREQc3v8HgWiW0OYtJh0AAAAASUVORK5CYII="
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# etas\n",
    "scores = []\n",
    "etas_arr = [x/10 for x in range(1, 11)]\n",
    "for i in etas_arr:\n",
    "    xgb = XGBClassifier(\n",
    "        n_estimators=ns,\n",
    "        objective=\"multi:softprob\",\n",
    "        n_jobs=-1,\n",
    "        max_depth=md,\n",
    "        min_child_weight=mcw,\n",
    "        subsample=ss,\n",
    "        colsample_bytree=csb,\n",
    "        eta=i\n",
    "    )  # 其他参数默认\n",
    "    xgb.fit(x_train_pca, trainY)\n",
    "    y_pre = xgb.predict_proba(x_val_pca)\n",
    "    s = log_loss(y_val, y_pre, eps=1e-15, normalize=True)\n",
    "    scores.append(s)\n",
    "#画图\n",
    "plt.plot(etas_arr, scores, \"o-\")\n",
    "plt.xlabel(\"etas_arr\")\n",
    "plt.ylabel(\"scores(log_loss)\")\n",
    "plt.grid()\n",
    "# 最小损失值即为最优\n",
    "value = etas_arr[np.argmin(scores)]\n",
    "print(\"eta最优值={}\".format(value))\n",
    "\n",
    "print(\n",
    "    \"n_estimator={}\\t max_depth={}\\t min_child_weights={}\\t subsamples={}\\t consample_bytrees={}\\t etas={}\\t\".format(\n",
    "        ns, md, mcw, ss, csb, value))"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2024-01-04T07:03:49.979668500Z",
     "start_time": "2024-01-04T07:03:24.734290900Z"
    }
   },
   "id": "21a921d523876fcf"
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "data": {
      "text/plain": "0.8097702199337614"
     },
     "execution_count": 84,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "xgb = XGBClassifier(\n",
    "    n_estimators=ns,\n",
    "    objective=\"multi:softprob\",\n",
    "    n_jobs=-1,\n",
    "    max_depth=md,\n",
    "    min_child_weight=mcw,\n",
    "    subsample=ss,\n",
    "    colsample_bytree=csb,\n",
    "    eta=0.6\n",
    ")  # 其他参数默认\n",
    "xgb.fit(x_train_pca, trainY)\n",
    "y_pre = xgb.predict_proba(x_val_pca)\n",
    "s = log_loss(y_val, y_pre, eps=1e-15, normalize=True)\n",
    "s"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2024-01-04T07:05:26.151686200Z",
     "start_time": "2024-01-04T07:05:23.313363700Z"
    }
   },
   "id": "8d919419ad226f1c"
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "outputs": [
    {
     "data": {
      "text/plain": "0.8097702199337614"
     },
     "execution_count": 85,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "s"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2024-01-04T07:05:53.247785300Z",
     "start_time": "2024-01-04T07:05:53.205583300Z"
    }
   },
   "id": "c356352cc1920b0c"
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "outputs": [],
   "source": [],
   "metadata": {
    "collapsed": false
   },
   "id": "a5711bd55a3e711f"
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
